Maison >développement back-end >tutoriel php >Compter le nombre de chaînes cohérentes
1684. Comptez le nombre de chaînes cohérentes
Difficulté :Facile
Sujets : Tableau, table de hachage, chaîne, manipulation de bits, comptage
Vous recevez une chaîne autorisée composée de caractères distincts et d'un tableau de chaînes de mots. Une chaîne est cohérente si tous les caractères de la chaîne apparaissent dans la chaîne autorisée.
Renvoyer le nombre de chaînes cohérentes dans le tableau mots.
Exemple 1 :
Exemple 2 :
Exemple 3 :
Contraintes :
Indice :
Solution :
L'idée est de vérifier si chaque mot du tableau de mots est cohérent avec les caractères de la chaîne autorisée. Un mot est cohérent si tous ses caractères sont présents dans la chaîne autorisée.
Jeu de caractères autorisés :
Vérification de la cohérence des mots :
Compter les mots cohérents :
Renvoyer le décompte :
Implémentons cette solution en PHP : 1684. Comptez le nombre de chaînes cohérentes
<?php /** * @param String $allowed * @param String[] $words * @return Integer */ function countConsistentStrings($allowed, $words) { ... ... ... /** * go to ./solution.php */ } // Example usage: // Example 1: $allowed = "ab"; $words = ["ad", "bd", "aaab", "baa", "badab"]; echo countConsistentStrings($allowed, $words); // Output: 2 // Example 2: $allowed = "abc"; $words = ["a","b","c","ab","ac","bc","abc"]; echo countConsistentStrings($allowed, $words); // Output: 7 // Example 3: $allowed = "cad"; $words = ["cc","acd","b","ba","bac","bad","ac","d"]; echo countConsistentStrings($allowed, $words); // Output: 4 ?> <h3> Explication: </h3> <ol> <li> <p><strong>Ensemble autorisé</strong> :</p> <ul> <li>Nous créons un tableau associatif $allowedSet où chaque clé est un caractère de la chaîne autorisée. Cela permet des recherches rapides.</li> </ul> </li> <li> <p><strong>Cohérence des mots</strong> :</p> <ul> <li>Pour chaque mot du tableau de mots, nous parcourons ses caractères et vérifions s'ils sont dans $allowedSet. Si nous trouvons un caractère qui ne figure pas dans l'ensemble, le mot est marqué comme incohérent et nous passons au mot suivant.</li> </ul> </li> <li> <p><strong>Comptage</strong> :</p> <ul> <li>Chaque fois que nous trouvons un mot cohérent, nous incrémentons le compteur $consistentCount.</li> </ul> </li> <li> <p><strong>Renvoyer le résultat</strong> :</p> <ul> <li>Après avoir traité tous les mots, le compteur contient le nombre de chaînes cohérentes, que nous renvoyons.</li> </ul> </li> </ol> <h3> Complexité temporelle : </h3> <ul> <li> <strong>Complexité temporelle</strong> : O(n * m), où n est le nombre de mots et m est la longueur moyenne des mots. Nous parcourons tous les mots et leurs caractères.</li> </ul> <h3> Exemple de procédure pas à pas : </h3> <p>Pour la saisie :<br> </p> <pre class="brush:php;toolbar:false">$allowed = "ab"; $words = ["ad", "bd", "aaab", "baa", "badab"];
Ainsi, la fonction renvoie 2.
Liens de contact
Si vous avez trouvé cette série utile, pensez à donner une étoile au référentiel sur GitHub ou à partager la publication sur vos réseaux sociaux préférés ?. Votre soutien signifierait beaucoup pour moi !
Si vous souhaitez du contenu plus utile comme celui-ci, n'hésitez pas à me suivre :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!