


Nombre minimum de retournements de paires non adjacentes requis pour supprimer tous les zéros dans une chaîne binaire
Dans une chaîne binaire, retourner une paire de bits adjacents peut facilement supprimer un seul 0 de la chaîne. Cependant, lorsque nous devons supprimer tous les 0 d’une chaîne binaire, nous devrons peut-être également inverser des paires de bits non adjacentes. Dans cet article, nous verrons comment déterminer le nombre minimum de retournements de paires non adjacentes requis pour supprimer tous les 0 d'une chaîne binaire.
Algorithme
Pour résoudre ce problème, nous utiliserons un algorithme glouton simple. L’idée est de toujours choisir la paire de bits les plus éloignés les uns des autres et avoir au moins un 0 entre les deux. Nous pouvons ensuite inverser ces deux bits, supprimant ainsi un 0 de la chaîne. Nous répétons ce processus jusqu'à ce que tous les 0 aient été supprimés.
Implémentons maintenant cet algorithme en C++.
Exemple
#include <iostream> #include <cstring> using namespace std; int main() { string s; s="100101000"; int n = s.size(); int cnt = 0; for (int i = 0; i < n; i++) { if (s[i] == '0') { cnt++; if (i+2 < n && s[i+2] == '0') { i += 2; } else { i++; } } } cout << cnt << endl; return 0; }
Sortie
3
Description du code
Le code ci-dessus prend une chaîne binaire en entrée et calcule le nombre minimum de retournements de paires non adjacentes requis pour supprimer tous les 0 de la chaîne. Examinons maintenant le code en détail.
Tout d'abord, nous prenons une chaîne binaire en entrée et la stockons dans la variable chaîne "s". Nous stockons également la taille de la chaîne dans une variable entière "n".
string s; cin >> s; int n = s.size();
Ensuite, nous initialisons la variable « cnt » pour stocker le nombre de 0 dans la chaîne. Nous parcourons ensuite la chaîne en utilisant une boucle for. Pour chaque 0 rencontré, nous incrémentons le nombre de 0 et vérifions si les deux bits suivants sont également des 0. Si c’est le cas, on retourne la paire de bits en augmentant l’index de 2. Sinon, nous retournons uniquement les paires de bits adjacentes en augmentant l'index de 1.
int cnt = 0; for (int i = 0; i < n; i++) { if (s[i] == '0') { cnt++; if (i+2 < n && s[i+2] == '0') { i += 2; } else { i++; } } }
Enfin, nous affichons le nombre de retournements de paires non adjacents requis pour supprimer tous les 0 de la chaîne.
cout << cnt << endl;
Exemple de cas de test
Considérons la chaîne binaire "100101000". Le nombre minimum de retournements de paires non adjacentes requis pour supprimer tous les 0 de cette chaîne peut être calculé à l'aide de l'algorithme ci-dessus.
Tout d’abord, nous rencontrons 0 en position 2. Nous retournons la paire (1,3) pour obtenir la chaîne "110101000". Ensuite, nous rencontrons le prochain 0 en position 5. Nous retournons la paire (1,7) pour obtenir la chaîne "111101000". Ensuite, nous rencontrons le prochain 0 en position 8. Nous retournons la paire (1,9) pour obtenir la chaîne "111111000". Désormais, tous les 0 ont été supprimés de la chaîne.
Le nombre de retournements de paires non adjacents requis pour supprimer tous les 0 d’une chaîne est de 3. Nous pouvons le vérifier en exécutant le code C++ ci-dessus sur la chaîne d'entrée "100101000".
Conclusion
Dans cet article, nous avons expliqué comment déterminer le nombre minimum de retournements de paires non adjacentes requis pour supprimer tous les 0 d'une chaîne binaire. Nous utilisons un algorithme glouton simple pour résoudre ce problème et l'implémentons dans le code C++. Nous fournissons également un exemple de cas de test pour illustrer le fonctionnement de l'algorithme.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les joueurs peuvent retourner l'écran lorsqu'ils jouent au jeu dans Eye of Deep Space. De nombreux utilisateurs ne savent pas comment retourner l'écran dans Eye of Deep Space. Les joueurs doivent activer l'option permettant de prendre en charge la rotation de l'écran dans le centre de contrôle, puis y revenir. le jeu. Comment retourner l'écran de Deep Space Eye 1. Ouvrez l'écran de votre téléphone et faites-le glisser vers le haut depuis le bas de l'écran avec votre doigt. 2. Ensuite, vous pouvez ouvrir le centre de contrôle. Dans le coin supérieur droit du centre de contrôle se trouve le commutateur permettant de désactiver la rotation de l'écran. 3. Cliquez dessus pour activer la rotation de l'écran. À ce stade, vous constaterez que l'icône contrôlant la rotation est mise en surbrillance dans le centre de contrôle. 4. Lorsque vous ouvrez une application prenant en charge la rotation de l'écran, elle pivotera à mesure que l'orientation du téléphone change.

L'arithmétique binaire est une méthode d'opération basée sur les nombres binaires. Ses opérations de base comprennent l'addition, la soustraction, la multiplication et la division. En plus des opérations de base, l'arithmétique binaire comprend également les opérations logiques, les opérations de déplacement et d'autres opérations. Les opérations logiques incluent AND, OR, NOT et d'autres opérations, et les opérations de déplacement incluent les opérations de décalage vers la gauche et vers la droite. Ces opérations ont des règles et des exigences d’opérandes correspondantes.

Méthodes et techniques pour obtenir des effets de retournement d'image grâce à du CSS pur Préface : Dans le développement Web, nous devons souvent ajouter des effets d'animation aux pages Web pour améliorer l'expérience utilisateur. L’effet de retournement des images est l’un des effets courants. Il est non seulement simple et pratique de réaliser le retournement d'images via du CSS pur, mais évite également la surcharge supplémentaire causée par l'utilisation d'autres langages tels que JavaScript. Cet article expliquera comment obtenir l'effet de retournement des images grâce à du CSS pur et fournira des exemples de code spécifiques. 1. Utilisation de la transformation CSS3

Les nombres binaires sont représentés par des 1 et des 0. Le système numérique hexadécimal 16 bits est {0,1,2,3…..9,A(10),B(11),…F(15)} afin de convertir la représentation binaire en hexadécimal Représente que le bit L'ID de chaîne est regroupé en morceaux de 4 bits, appelés quartets en commençant par le côté le moins significatif. Chaque bloc est remplacé par le nombre hexadécimal correspondant. Voyons un exemple pour bien comprendre la représentation des nombres hexadécimaux et binaires. 001111100101101100011101 3 E 5 Chambres d'hôtes

EDVAC présente deux améliorations majeures : l'une est l'utilisation du binaire et l'autre est l'achèvement du programme stocké, qui peut automatiquement passer d'une instruction de programme à la suivante, et ses opérations peuvent être automatiquement complétées par des instructions. Les « instructions » incluent les données et les programmes qui sont entrés dans le dispositif de mémoire de la machine sous forme de codes, c'est-à-dire que le même dispositif de mémoire qui stocke les données est utilisé pour stocker les instructions permettant d'effectuer des opérations. -appelés programmes stockés.

HTML, CSS et jQuery : créez un bel effet de retournement de carte Dans la conception Web, l'application d'effets spéciaux peut augmenter l'interactivité et les effets visuels de la page. L'effet de retournement de carte est un effet spécial courant, qui peut offrir aux utilisateurs une expérience de navigation plus vivante et intéressante. Cet article explique comment utiliser HTML, CSS et jQuery pour créer un bel effet de retournement de carte et fournit des exemples de code spécifiques. Tout d’abord, nous devons préparer la structure de base du HTML. Nous utiliserons deux éléments div pour représenter le recto de la carte

Comment lire des fichiers binaires dans Golang ? Les fichiers binaires sont des fichiers stockés sous forme binaire contenant des données qu'un ordinateur peut reconnaître et traiter. Dans Golang, nous pouvons utiliser certaines méthodes pour lire des fichiers binaires et les analyser dans le format de données souhaité. Ce qui suit présentera comment lire des fichiers binaires dans Golang et donnera des exemples de code spécifiques. Tout d’abord, nous devons ouvrir un fichier binaire à l’aide de la fonction Open du package os, qui renverra un objet fichier. Ensuite, nous pouvons faire

Les principales raisons pour lesquelles les ordinateurs utilisent des systèmes binaires : 1. Les ordinateurs sont composés de circuits logiques. Les circuits logiques n'ont généralement que deux états, l'interrupteur est activé et désactivé, et ces deux états peuvent être représentés par « 1 » et « 0 » ; Seuls deux nombres, 0 et 1, sont utilisés dans le système binaire, ce qui est moins sujet aux erreurs lors de la transmission et du traitement, garantissant ainsi une grande fiabilité de l'ordinateur.
