Inhaltsverzeichnis
Methode 1
Algorithmus
Beispiel
Ausgabe
Heim Backend-Entwicklung C++ Machen Sie binäre Zeichenfolgen gleich, indem Sie das zweite Bit wiederholt ersetzen

Machen Sie binäre Zeichenfolgen gleich, indem Sie das zweite Bit wiederholt ersetzen

Sep 17, 2023 pm 07:41 PM
替换 wiederholen Binärzeichenfolge

Machen Sie binäre Zeichenfolgen gleich, indem Sie das zweite Bit wiederholt ersetzen

In diesem Problem müssen wir die Zeichenfolge bin1 in die Zeichenfolge bin2 konvertieren, indem wir das zweite Zeichen der Zeichenfolge bin1 durch den minimalen oder maximalen Wert zwischen dem ersten und zweiten Zeichen ersetzen und das erste Zeichen löschen.

Da wir das erste Zeichen entfernen müssen, müssen wir sicherstellen, dass die letzten len2 − 1 Zeichen in den beiden Zeichenfolgen gleich sind. Darüber hinaus müssen wir sicherstellen, dass wir das erste Zeichen der zweiten Zeichenfolge erhalten können, indem wir die angegebene Operation am Startzeichen der bin1-Zeichenfolge ausführen.

Problemstellung – Wir erhalten bin1- und bin2-Binärzeichenfolgen mit der Länge len1 bzw. len2. Wir müssen prüfen, ob wir die Zeichenfolge „bin1“ in die Zeichenfolge „bin2“ konvertieren können, indem wir den folgenden Vorgang ausführen.

  • Aktualisieren Sie das zweite Zeichen der bin1-Zeichenfolge mit dem Mindest- oder Maximalwert des ersten und zweiten Zeichens der bin1-Zeichenfolge.

  • Entfernen Sie das erste Zeichen der bin1-Zeichenfolge und die Zeichenfolgengröße wird jedes Mal um 1 reduziert.

Beispiel

Eintreten

bin1 = "0101011"; bin2 = "011";
Nach dem Login kopieren

Ausgabe

Yes
Nach dem Login kopieren
Nach dem Login kopieren

Anleitung – Wir können Folgendes tun, um die Zeichenfolge „bin1“ in die Zeichenfolge „bin2“ zu konvertieren.

  • Wir können das zweite Zeichen durch min(0,1) ersetzen und das erste Zeichen löschen. Daher wird die Zeichenfolge zu 001011.

  • Wir führen den gleichen Vorgang noch einmal durch und die Zeichenfolge wird zu 01011.

  • In den nächsten paar Operationen wird die Zeichenfolge zu 0011 bzw. 011.

Eintreten

bin1 = "1110"; bin2 = "1110";
Nach dem Login kopieren

Ausgabe

Yes
Nach dem Login kopieren
Nach dem Login kopieren

Erklärung – Die angegebenen Zeichenfolgen sind bereits gleich.

Eintreten

bin1 = "101101"; bin2 = "1110";
Nach dem Login kopieren

Ausgabe

No
Nach dem Login kopieren

Erläuterung – Wir können die Zeichenfolge „bin1“ nicht in die Zeichenfolge „bin2“ konvertieren, indem wir die angegebene Operation ausführen.

Methode 1

Wenn die Länge der Zeichenfolge „bin1“ kleiner ist, können wir sie nicht in die Zeichenfolge „bin2“ konvertieren.

In anderen Fällen bleiben die letzten len2 − 1 Zeichen der bin1-Zeichenfolge unverändert, da wir keine Operationen daran ausführen. Daher sollten die letzten len2 − 1 Zeichen in beiden Zeichenfolgen gleich sein.

Wenn das erste Zeichen der Zeichenfolge bin2 „0“ ist, sollten wir außerdem das Startzeichen der Zeichenfolge bin1 min() verwenden, und es sollte mindestens eine „0“ enthalten.

Wenn das erste Zeichen in der bin2-Zeichenfolge „1“ ist, sollten wir die max()-Operation für das Startzeichen der bin2-Zeichenfolge ausführen und es sollte mindestens eine „1“ enthalten.

Algorithmus

Schritt 1 - Wenn die Länge von bin1 kleiner als die Länge der Zeichenfolge bin2 ist, geben Sie „false“ zurück.

Schritt 2 – Durchqueren Sie die bin2-Zeichenfolge ab der zweiten Position.

Schritt 3 – Wenn bin2[p] nicht gleich bin1[p + len1 – len2] ist, geben Sie „false“ zurück, da die letzten len2 -1 Zeichen nicht gleich sind.

Schritt 4 – Durchlaufen Sie die ersten Zeichen len1 – len2 + 1 und prüfen Sie, ob sie bin2[0]-Zeichen enthalten. Wenn ja, geben Sie true zurück.

Schritt 5 – Geben Sie am Ende der Funktion false zurück.

Beispiel

#include <bits/stdc++.h>
using namespace std;

bool convertAtoB(string bin1, string bin2) {
    int len1 = bin1.size(), len2 = bin2.size();
    // When length 1 is less than length 2
    if (len1 < len2) {
        return false;
    }
    // Check whether substring bin1[p + len1 - len2]... bin1[len1] and bin2[1]... bin2[len2]
    for (int p = 1; p < len2; p++) {
        if (bin1[p + len1 - len2] != bin2[p]) {
            return false;
        }
    }
    // Check whether substring bin1[0... len1 - len2 - 1] contains bin2[0]
    for (int p = 0; p < len1 - len2 + 1; p++) {
        if (bin1[p] == bin2[0]) {
            return true;
        }
    }
    return false;
}
int main() {
    string bin1 = "0101011";
    string bin2 = "011";
    bool res = convertAtoB(bin1, bin2);
    if (res == true) {
        cout << "YES, It is possible to convert bin1 to bin2.";
    } else {
        cout << "NO, It is not possible to convert bin1 to bin2.";
    }
}
Nach dem Login kopieren

Ausgabe

YES, It is possible to convert bin1 to bin2.
Nach dem Login kopieren

Zeitkomplexität – O(N), um Zeichenfolgenzeichen abzugleichen.

Raumkomplexität – O(1), da wir keinen dynamischen Raum verwenden.

Wir haben gelernt, die erste Binärzeichenfolge in die zweite Binärzeichenfolge umzuwandeln, indem wir der angegebenen Operation folgen. Ein Programmierer könnte versuchen zu prüfen, ob eine Zeichenfolge in eine andere konvertiert werden kann, indem er das letzte Zeichen durch den minimalen oder maximalen Wert des letzten und letzten zweiten Zeichens ersetzt und das letzte Zeichen entfernt.

Das obige ist der detaillierte Inhalt vonMachen Sie binäre Zeichenfolgen gleich, indem Sie das zweite Bit wiederholt ersetzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Beherrschen Sie PyCharm-Ersatz-Tastenkombinationen in 5 Minuten und erhöhen Sie ganz einfach Ihre Programmiergeschwindigkeit! Beherrschen Sie PyCharm-Ersatz-Tastenkombinationen in 5 Minuten und erhöhen Sie ganz einfach Ihre Programmiergeschwindigkeit! Feb 22, 2024 am 10:57 AM

PyCharm ist eine häufig verwendete integrierte Python-Entwicklungsumgebung mit umfangreichen Funktionen und Tastenkombinationen, die Entwicklern dabei helfen können, die Programmiereffizienz zu verbessern. Im täglichen Programmierprozess kann die Beherrschung der Fähigkeiten zum Ersetzen von Tastenkombinationen in PyCharm Entwicklern dabei helfen, Aufgaben schneller zu erledigen. In diesem Artikel werden einige häufig verwendete Ersatz-Tastenkombinationen in PyCharm vorgestellt, mit denen Sie Ihre Programmiergeschwindigkeit auf einfache Weise verbessern können. 1.Strg+R-Ersetzung In PyCharm können Sie die Tastenkombination Strg+R verwenden, um Ersetzungsvorgänge durchzuführen.

So lösen Sie das Problem der Endlosschleife beim Öffnen von Webseiten im Edge-Browser So lösen Sie das Problem der Endlosschleife beim Öffnen von Webseiten im Edge-Browser Dec 25, 2023 pm 01:19 PM

Viele Freunde, die den Edge-Browser unter Win10 verwenden, sind auf das Problem gestoßen, dass Webseiten wiederholt geöffnet werden, was Kopfschmerzen bereitet. Werfen wir einen Blick auf die detaillierten Lösungen unten. Was tun, wenn der Edge-Browser immer wieder Webseiten öffnet: 1. Rufen Sie den Edge-Browser auf und klicken Sie auf die drei Punkte in der oberen rechten Ecke. 2. Klicken Sie in der Taskleiste auf „Einstellungen“. 3. Suchen Sie nach „Microsoft Edge-Öffnungsmethode“. 4. Klicken Sie auf das Dropdown-Menü und wählen Sie „Startseite“. 5. Starten Sie den Browser nach Abschluss neu, um das Problem zu beheben.

Verwenden Sie die StringBuilder.replace()-Funktion von Java, um einen angegebenen Zeichenbereich zu ersetzen Verwenden Sie die StringBuilder.replace()-Funktion von Java, um einen angegebenen Zeichenbereich zu ersetzen Jul 24, 2023 pm 06:12 PM

Verwenden Sie die StringBuilder.replace()-Funktion von Java, um einen bestimmten Zeichenbereich zu ersetzen. In Java stellt die StringBuilder-Klasse die Methode replace() bereit, mit der ein bestimmter Zeichenbereich in einer Zeichenfolge ersetzt werden kann. Die Syntax dieser Methode lautet wie folgt: publicStringBuilderreplace(intstart,intend,Stringstr) Die obige Methode wird verwendet, um den Indexstern von zu ersetzen

PyCharm-Einsteigerhandbuch: Umfassende Analyse von Ersetzungsfunktionen PyCharm-Einsteigerhandbuch: Umfassende Analyse von Ersetzungsfunktionen Feb 25, 2024 am 11:15 AM

PyCharm ist eine leistungsstarke integrierte Python-Entwicklungsumgebung mit umfangreichen Funktionen und Tools, die die Entwicklungseffizienz erheblich verbessern können. Unter diesen ist die Ersetzungsfunktion eine der im Entwicklungsprozess häufig verwendeten Funktionen, die Entwicklern helfen kann, den Code schnell zu ändern und die Codequalität zu verbessern. In diesem Artikel wird die Ersetzungsfunktion von PyCharm ausführlich vorgestellt, kombiniert mit spezifischen Codebeispielen, um Anfängern zu helfen, diese Funktion besser zu beherrschen und zu verwenden. Einführung in die Ersetzungsfunktion Die Ersetzungsfunktion von PyCharm kann Entwicklern dabei helfen, bestimmten Text im Code schnell zu ersetzen

Ersetzen Sie den Klassennamen eines Elements mit jQuery Ersetzen Sie den Klassennamen eines Elements mit jQuery Feb 24, 2024 pm 11:03 PM

jQuery ist eine klassische JavaScript-Bibliothek, die in der Webentwicklung weit verbreitet ist. Sie vereinfacht Vorgänge wie die Verarbeitung von Ereignissen, die Bearbeitung von DOM-Elementen und die Durchführung von Animationen auf Webseiten. Bei der Verwendung von jQuery kommt es häufig vor, dass Sie den Klassennamen eines Elements ersetzen müssen. In diesem Artikel werden einige praktische Methoden und spezifische Codebeispiele vorgestellt. 1. Verwenden Sie die Methoden „removeClass()“ und „addClass()“. jQuery stellt die Methode „removeClass()“ zum Löschen bereit

PyCharm ersetzt Tastenkombinationen, um das Programmieren komfortabler zu machen! PyCharm ersetzt Tastenkombinationen, um das Programmieren komfortabler zu machen! Feb 21, 2024 pm 12:03 PM

PyCharm ist eine integrierte Entwicklungsumgebung, die bei Programmierern beliebt ist. Sie bietet leistungsstarke Funktionen und Tools, um die Programmierung effizienter und komfortabler zu gestalten. In PyCharm ist die sinnvolle Einstellung und Ersetzung von Tastenkombinationen einer der Schlüssel zur Verbesserung der Programmiereffizienz. In diesem Artikel wird erläutert, wie Sie Tastenkombinationen in PyCharm ersetzen, um die Programmierung komfortabler zu gestalten. 1. Warum sollten wir Tastenkombinationen in PyCharm ersetzen, um Programmierern dabei zu helfen, verschiedene Vorgänge schnell abzuschließen und die Programmiereffizienz zu verbessern? Allerdings hat jeder andere Gewohnheiten, und bei manchen Menschen ist das vielleicht der Fall

So verwenden Sie die REPLACE-Funktion, um einen bestimmten Teil einer Zeichenfolge in MySQL zu ersetzen So verwenden Sie die REPLACE-Funktion, um einen bestimmten Teil einer Zeichenfolge in MySQL zu ersetzen Jul 25, 2023 pm 01:18 PM

MySQL ist ein häufig verwendetes relationales Datenbankverwaltungssystem, das eine Vielzahl von Funktionen zum Verarbeiten und Betreiben von Daten bietet. Unter anderem wird die REPLACE-Funktion verwendet, um den angegebenen Teil der Zeichenfolge zu ersetzen. In diesem Artikel stellen wir die Verwendung der REPLACE-Funktion zum Ersetzen von Zeichenfolgen in MySQL vor und demonstrieren ihre Verwendung anhand von Codebeispielen. Schauen wir uns zunächst die Syntax der REPLACE-Funktion an: REPLACE(str,search_str,replace_str).

Wie ersetze ich ein Wort in Excel mit Python? Wie ersetze ich ein Wort in Excel mit Python? Sep 16, 2023 pm 10:21 PM

In Python können wir mithilfe einer Python-Bibliothek eines Drittanbieters namens openpyxl ein Wort durch ein anderes Wort in Excel ersetzen. Microsoft Excel ist ein nützliches Tool zum Verwalten und Analysieren von Daten. Mit Python können wir einige Excel-Datenverwaltungsaufgaben automatisieren. In diesem Artikel erfahren Sie, wie Sie mit Python ein Wort in Excel ersetzen. Bevor wir openpyxl installieren, um Word in Excel zu ersetzen, müssen wir die openpyxl-Bibliothek mithilfe des Python-Paketmanagers im System installieren. Um openpyxl zu installieren, geben Sie den folgenden Befehl im Terminal oder in der Eingabeaufforderung ein. Pipinst

See all articles