


Mindestanzahl von nicht benachbarten Paarwechseln, die erforderlich sind, um alle Nullen in einer Binärzeichenfolge zu entfernen
In einer binären Zeichenfolge kann durch das Umdrehen eines Paares benachbarter Bits leicht eine einzelne 0 aus der Zeichenfolge entfernt werden. Wenn wir jedoch alle Nullen aus einer Binärzeichenfolge entfernen müssen, müssen wir möglicherweise auch nicht benachbarte Bitpaare umdrehen. In diesem Artikel besprechen wir, wie man die Mindestanzahl nicht benachbarter Paarumdrehungen bestimmt, die erforderlich sind, um alle Nullen aus einer Binärzeichenfolge zu entfernen.
Algorithmus
Um dieses Problem zu lösen, verwenden wir einen einfachen Greedy-Algorithmus. Die Idee besteht darin, immer das Bitpaar zu wählen, das am weitesten voneinander entfernt ist und zwischen dem mindestens eine 0 liegt. Wir können diese beiden Bits dann umdrehen und so effektiv eine 0 aus der Zeichenfolge entfernen. Wir wiederholen diesen Vorgang, bis alle Nullen entfernt wurden.
Jetzt implementieren wir diesen Algorithmus in C++.
Beispiel
#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; }
Ausgabe
3
Codebeschreibung
Der obige Code verwendet eine Binärzeichenfolge als Eingabe und berechnet die Mindestanzahl nicht benachbarter Paarumdrehungen, die erforderlich sind, um alle Nullen aus der Zeichenfolge zu entfernen. Schauen wir uns nun den Code im Detail an.
Zuerst nehmen wir einen binären String als Eingabe und speichern ihn in der String-Variablen „s“. Wir speichern die Größe des Strings auch in einer Integer-Variablen „n“.
string s; cin >> s; int n = s.size();
Als nächstes initialisieren wir die Variable „cnt“, um die Anzahl der Nullen in der Zeichenfolge zu speichern. Anschließend iterieren wir mithilfe einer for-Schleife über die Zeichenfolge. Für jede angetroffene Null erhöhen wir die Anzahl der Nullen und prüfen, ob die nächsten beiden Bits ebenfalls Nullen sind. Wenn ja, kehren wir das Bitpaar um, indem wir den Index um 2 erhöhen. Andernfalls spiegeln wir nur benachbarte Bitpaare um, indem wir den Index um 1 erhöhen.
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++; } } }
Schließlich geben wir die Anzahl der Umdrehungen nicht benachbarter Paare aus, die erforderlich sind, um alle Nullen aus der Zeichenfolge zu entfernen.
cout << cnt << endl;
Testfallbeispiel
Betrachten wir die Binärzeichenfolge „100101000“. Die Mindestanzahl von nicht benachbarten Paarumdrehungen, die erforderlich sind, um alle Nullen aus dieser Zeichenfolge zu entfernen, kann mit dem obigen Algorithmus berechnet werden.
Zuerst treffen wir auf 0 auf Position 2. Wir drehen das (1,3)-Paar um, um die Zeichenfolge „110101000“ zu erhalten. Dann stoßen wir auf die nächste 0 an Position 5. Wir drehen das (1,7)-Paar um, um die Zeichenfolge „111101000“ zu erhalten. Dann stoßen wir auf die nächste 0 an Position 8. Wir drehen das (1,9)-Paar um, um die Zeichenfolge „111111000“ zu erhalten. Jetzt wurden alle Nullen aus der Zeichenfolge entfernt.
Die Anzahl der Umdrehungen nicht benachbarter Paare, die erforderlich sind, um alle Nullen aus einer Zeichenfolge zu entfernen, beträgt 3. Wir können dies überprüfen, indem wir den obigen C++-Code für die Eingabezeichenfolge „100101000“ ausführen.
Fazit
In diesem Artikel haben wir besprochen, wie man die Mindestanzahl nicht benachbarter Paarumdrehungen bestimmt, die erforderlich sind, um alle Nullen aus einer Binärzeichenfolge zu entfernen. Wir verwenden einen einfachen Greedy-Algorithmus, um dieses Problem zu lösen und ihn in C++-Code zu implementieren. Wir stellen auch einen Beispieltestfall zur Verfügung, um die Funktionsweise des Algorithmus zu veranschaulichen.
Das obige ist der detaillierte Inhalt vonMindestanzahl von nicht benachbarten Paarwechseln, die erforderlich sind, um alle Nullen in einer Binärzeichenfolge zu entfernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Spieler können den Bildschirm umdrehen, wenn sie das Spiel in Eye of Deep Space spielen. Viele Benutzer wissen nicht, wie sie den Bildschirm umdrehen können. Spieler müssen die Option zur Unterstützung der Bildschirmdrehung im Kontrollzentrum aktivieren und dann zu zurückkehren das Spiel. So drehen Sie den Bildschirm von Deep Space Eye um: 1. Öffnen Sie den Bildschirm Ihres Telefons und streichen Sie mit Ihrem Finger vom unteren Bildschirmrand nach oben. 2. Anschließend können Sie das Kontrollzentrum öffnen. In der oberen rechten Ecke des Kontrollzentrums befindet sich der Schalter zum Ausschalten der Bildschirmrotation. 3. Klicken Sie darauf, um die Bildschirmdrehung zu aktivieren. Zu diesem Zeitpunkt wird das Symbol zur Steuerung der Drehung im Kontrollzentrum hervorgehoben. 4. Wenn Sie eine Anwendung öffnen, die die Bildschirmdrehung unterstützt, dreht sich dieser, wenn sich die Ausrichtung des Telefons ändert.

Methoden und Techniken zum Erzielen von Bildspiegelungseffekten durch reines CSS. Vorwort: In der Webentwicklung müssen wir Webseiten häufig einige Animationseffekte hinzufügen, um die Benutzererfahrung zu verbessern. Der Spiegeleffekt von Bildern ist einer der häufigsten Effekte. Es ist nicht nur einfach und bequem, das Spiegeln von Bildern über reines CSS zu realisieren, sondern vermeidet auch den zusätzlichen Aufwand, der durch die Verwendung anderer Sprachen wie JavaScript entsteht. In diesem Artikel wird erläutert, wie Sie den Flip-Effekt von Bildern mithilfe von reinem CSS erzielen, und es werden spezifische Codebeispiele bereitgestellt. 1. CSS3-Transfo verwenden

Binäre Arithmetik ist eine Operationsmethode, die auf Binärzahlen basiert. Zu ihren Grundoperationen gehören Addition, Subtraktion, Multiplikation und Division. Die binäre Arithmetik umfasst neben Grundoperationen auch logische Operationen, Verschiebungsoperationen und andere Operationen. Zu den logischen Operationen gehören UND, ODER, NICHT und andere Operationen, und Verschiebungsoperationen umfassen Linksverschiebungs- und Rechtsverschiebungsoperationen. Für diese Operationen gelten entsprechende Regeln und Operandenanforderungen.

HTML, CSS und jQuery: Erstellen Sie einen schönen Kartenumdreheffekt. Im Webdesign kann die Anwendung von Spezialeffekten die Interaktivität und die visuellen Effekte der Seite erhöhen. Der Kartenumdreheffekt ist ein häufiger Spezialeffekt, der Benutzern ein lebendigeres und interessanteres Surferlebnis bieten kann. In diesem Artikel wird erläutert, wie Sie mithilfe von HTML, CSS und jQuery einen schönen Kartenumdrehungseffekt erstellen, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir die Grundstruktur von HTML vorbereiten. Wir werden zwei div-Elemente verwenden, um die Vorderseite der Karte darzustellen

Binärzahlen werden durch Einsen und Nullen dargestellt. Das 16-Bit-Hexadezimalzahlensystem ist {0,1,2,3…..9,A(10),B(11),…F(15)}, um von der binären Darstellung in eine hexadezimale Darstellung umzuwandeln. Stellt das Bit dar Die Zeichenfolgen-ID ist in 4-Bit-Blöcke gruppiert, sogenannte Nibbles, beginnend mit der niedrigstwertigen Seite. Jeder Block wird durch die entsprechende Hexadezimalzahl ersetzt. Sehen wir uns ein Beispiel an, um ein klares Verständnis der Darstellung hexadezimaler und binärer Zahlen zu erhalten. 001111100101101100011101 3 E 5 B&nb

EDVAC weist zwei wesentliche Verbesserungen auf: Zum einen die Verwendung von Binärfunktionen und zum anderen die Vervollständigung des gespeicherten Programms, das automatisch von einer Programmanweisung zur nächsten fortschreiten kann und dessen Vorgänge automatisch durch Anweisungen abgeschlossen werden können. „Anweisungen“ umfassen Daten und Programme, die in Form von Codes in das Speichergerät der Maschine eingegeben werden. Das heißt, dasselbe Speichergerät, das Daten speichert, wird zum Speichern von Anweisungen zum Ausführen von Operationen verwendet -sogenannte gespeicherte Programme.

Wie lese ich Binärdateien in Golang? Binärdateien sind in binärer Form gespeicherte Dateien, die Daten enthalten, die ein Computer erkennen und verarbeiten kann. In Golang können wir einige Methoden verwenden, um Binärdateien zu lesen und sie in das gewünschte Datenformat zu analysieren. Im Folgenden wird das Lesen von Binärdateien in Golang vorgestellt und spezifische Codebeispiele gegeben. Zuerst müssen wir eine Binärdatei mit der Open-Funktion aus dem Betriebssystempaket öffnen, die ein Dateiobjekt zurückgibt. Dann können wir machen

Kann Golang mit Binärdateien umgehen? In der Go-Sprache ist die Verarbeitung von Binärdateien sehr verbreitet und bequem. Durch die Verwendung integrierter Pakete und Methoden können wir Binärdateien einfach lesen, schreiben und bearbeiten. In diesem Artikel wird der Umgang mit Binärdateien in Go erläutert und spezifische Codebeispiele bereitgestellt. Binärdateien lesen Um eine Binärdatei zu lesen, müssen wir zunächst die Datei öffnen und ein entsprechendes Dateiobjekt erstellen. Wir können dann die Read-Methode verwenden, um die Daten aus der Datei zu lesen und sie in Bytes zu speichern
