Étant donné une chaîne binaire S composé de N caractères, la tâche est de trouver le nombre minimum de flips requis de telle sorte qu’il n’existe pas trois mêmes caractères consécutifs.
Exemples:
Saisir: S = « 1100011 »
Sortir: 1
Explication:
Retourner le caractère à l’index 3 modifie la chaîne S « 1101011 » qui n’a pas trois mêmes caractères consécutifs. Par conséquent, le nombre minimum de flips requis est de 1.
Saisir: S = « 0001111101 »
Sortir: 2
Approcher: Le problème donné peut être résolu en considérant tous les trois caractères consécutifs et s’ils sont identiques, augmentez le nombre de retournements requis car l’un des trois caractères doit être retourné. Suivez les étapes ci-dessous pour résoudre le problème :
- Initialisez la variable, disons compter comme 0 qui stocke le nombre minimum de flips requis.
- Si la taille de la chaîne est inférieure à égale à 2, puis reviens 0 car il n’y a pas besoin de flips.
- Itérer sur la plage [0, N – 2) using the variable i and perform the following steps:
- If the character at indices i, (i + 1), and (i + 2) characters are the same, then increment the value of count by 1 and the value of i by 3.
- Otherwise, increment the value of i by 1.
- After performing the above steps, print the value of count as the result.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h> using namespace std;
int minFlips(string str) {
int count = 0;
if (str.size() <= 2) { return 0; }
for (int i = 0; i < str.size() – 2;) {
if (str[i] == chaîne[i + 1] && chaîne[i + 2] == chaîne[i + 1]) { i = i + 3; compte++ ; } autre { je++ ; } } nombre de retours ; } int main() { chaîne S = « 0011101 » ; cout << minFlips(S); renvoie 0 ; } |
Complexité temporelle : AU)
Espace auxiliaire : O(1)
Attention lecteur ! N’arrêtez pas d’apprendre maintenant. Obtenez tous les concepts importants de DSA avec le Cours auto-rythmé DSA à un prix adapté aux étudiants et devenez prêt pour l’industrie. Pour compléter votre préparation de l’apprentissage d’une langue à DS Algo et bien d’autres, veuillez vous référer Cours complet de préparation aux entretiens.
Au cas où vous souhaiteriez assister cours en direct avec des experts, veuillez vous référer Cours en direct DSA pour les professionnels en activité et Programmation compétitive en direct pour les étudiants.