2914. Nombre minimum de modifications pour rendre la chaîne binaire belle
Difficulté :Moyen
Sujets : Chaîne
Vous recevez une chaîne binaire indexée à 0 ayant une longueur paire.
Une chaîne est belle s'il est possible de la partitionner en une ou plusieurs sous-chaînes telles que :
Vous pouvez changer n'importe quel caractère de s en 0 ou 1.
Renvoyer le nombre minimum de modifications nécessaires pour rendre la chaîne belle.
Exemple 1 :
Exemple 2 :
Exemple 3 :
Contraintes :
Indice :
Solution :
Nous devons nous assurer que chaque paire de caractères de la chaîne binaire s est soit "00" soit "11". Si une paire ne se trouve pas dans l'un de ces deux motifs, nous devrons changer l'un des caractères pour le faire correspondre.
Voici l'approche de la solution étape par étape :
Divisez la chaîne en blocs : Puisqu'une belle chaîne peut être formée à partir de blocs de longueur 2, nous pouvons parcourir la chaîne par étapes de 2.
Compte des modifications : Pour chaque bloc de 2 caractères, nous devons déterminer le caractère majoritaire (soit 0, soit 1). Nous modifierons le caractère minoritaire dans le bloc pour qu'il corresponde au caractère majoritaire.
Calculer les modifications minimales : Pour chaque bloc, si les deux caractères sont différents, nous aurons besoin d'1 modification ; s'ils sont identiques, aucune modification n'est requise.
Implémentons cette solution en PHP : 2914. Nombre minimum de modifications pour rendre la chaîne binaire belle
Explication:
Définition de la fonction : Nous définissons une fonction minChanges qui prend une chaîne binaire s.
Initialisation : Nous initialisons une variable $changes pour garder une trace du nombre de modifications requises.
Itérer sur la chaîne : Nous parcourons la chaîne en incrémentant de 2 à chaque fois pour vérifier chaque bloc de deux caractères :
- $first est le caractère à la position actuelle.
- $second est le caractère à la position suivante.
Vérifier les modifications : Si les caractères du bloc actuel sont différents, nous incrémentons le compteur $changes de 1.
Résultat du retour : Enfin, nous renvoyons le nombre total de modifications requises.
Complexité:
Cette solution fonctionne en O(n) complexité temporelle, où n est la longueur de la chaîne, ce qui la rend efficace pour les contraintes données.
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!