Maison > Article > développement back-end > Diviser une chaîne en nombre maximum de sous-chaînes uniques
1593. Diviser une chaîne en nombre maximum de sous-chaînes uniques
Difficulté :Moyen
Sujets : Table de hachage, chaîne, retour en arrière
Étant donné une chaîne s, renvoie le nombre maximum de sous-chaînes uniques en lesquelles la chaîne donnée peut être divisée.
Vous pouvez diviser les chaînes en n'importe quelle liste de sous-chaînes non vides, où la concaténation des sous-chaînes forme la chaîne d'origine. Cependant, vous devez diviser les sous-chaînes de telle sorte qu'elles soient toutes uniques.
Une sous-chaîne est une séquence contiguë de caractères dans une chaîne.
Exemple 1 :
Exemple 2 :
Exemple 3 :
Contraintes :
Indice :
Solution :
Nous pouvons utiliser une approche de retour en arrière. Cela implique d'essayer de manière récursive de créer des sous-chaînes à partir de la position actuelle dans la chaîne et de garder une trace des sous-chaînes uniques que nous avons utilisées jusqu'à présent.
Voici une solution étape par étape :
Implémentons cette solution en PHP : 1593. Diviser une chaîne en nombre maximum de sous-chaînes uniques
maxUniqueSplit("ababccc"); // Output: 5 echo "\n"; echo $solution->maxUniqueSplit("aba"); // Output: 2 echo "\n"; echo $solution->maxUniqueSplit("aa"); // Output: 1 ?>Explication:
Signature de fonction : La fonction principale est maxUniqueSplit, qui initialise le processus de retour en arrière.
Retour en arrière :
- La fonction backtrack prend la chaîne, le tableau des sous-chaînes utilisées et l'index de départ actuel.
- Si l'index de début atteint la fin de la chaîne, il renvoie le nombre de sous-chaînes uniques collectées.
- Une boucle parcourt les indices de fin possibles pour créer des sous-chaînes à partir de l'index de début.
- Si la sous-chaîne est unique (pas déjà dans le tableau utilisé), elle est ajoutée à used et la fonction récure pour l'index suivant.
- Après avoir exploré ce chemin, il supprime la sous-chaîne pour revenir en arrière et explorer d'autres possibilités.
Sortie : La fonction renvoie le nombre maximum de sous-chaînes uniques pour diverses chaînes d'entrée.
Complexité
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!