


Mindestanzahl an Zeichen, die entfernt werden müssen, um eine Binärzeichenfolge in aufsteigender Reihenfolge zu sortieren
在计算机科学中,字符串操作是一个重要的主题,涉及到拼接、子串、反转等操作。与字符串操作相关的一个常见问题是从二进制字符串中移除所有的0。在本文中,我们将讨论一种使用最少数量的非相邻对翻转来解决这个问题的算法。
问题陈述
给定一个二进制字符串,我们必须使用最少次数的非相邻对翻转来删除字符串中的所有 0。翻转被定义为选择两个相邻的字符并交换它们。换句话说,我们需要找到使字符串中全0到字符串末尾所需的最少翻转次数。
方法
我们可以使用贪心算法来解决这个问题。我们可以从字符串的左边开始,并跟踪我们翻转0到末尾的最后一个索引。对于每个遇到的0,我们将其与最后一个翻转的0交换位置,将其移动到字符串的末尾。如果遇到1,我们只需移动到下一个索引。
让我们详细看一下算法 -
将两个变量“lastFlipped”和“flipCount”分别初始化为 -1 和 0。
从左到右遍历二进制字符串。
如果当前字符为“0”,则将其与索引“lastFlipped + 1”处的字符交换,并递增“lastFlipped”变量。
为每个交换操作增加“flipCount”变量。
遍历完成后,所有 0 将位于字符串末尾,“flipCount”将包含删除所有 0 所需的最小翻转次数。
示例
这是用于实现上述算法的C++代码 -
#include <iostream> #include <string> using namespace std; int minNonAdjacentPairFlips(string s) { int lastFlipped = -1; int flipCount = 0; for (int i = 0; i < s.length(); i++) { if (s[i] == '0') { swap(s[i], s[lastFlipped + 1]); lastFlipped++; flipCount++; } } return flipCount; } int main() { string s = "100101000"; cout << "Binary String: " << s << endl; cout << "Minimum Non-adjacent Pair Flips: " << minNonAdjacentPairFlips(s) << endl; return 0; }
输出
Binary String: 100101000 Minimum Non-adjacent Pair Flips: 6
测试用例的解释
我们以二进制字符串“100101000”为例。我们必须使用最少次数的非相邻对翻转来删除该字符串中的所有 0。
最初,"lastFlipped" 和 "flipCount" 分别被设置为 -1 和 0。
我们开始从左到右遍历字符串。
在索引1处,我们遇到了一个'0'。我们将其与索引"lastFlipped + 1"(即索引0)处的字符交换,并将"lastFlipped"增加到0。字符串变为"010101000"。"flipCount"增加到1。
在索引4处,我们遇到另一个'0'。我们将其与索引"lastFlipped + 1"(即索引1)处的字符进行交换,并将"lastFlipped"增加到1。字符串变为"011010000"。"flipCount"增加到2。
在索引5处,我们遇到了一个'1'。我们只需移动到下一个索引
结论
在本文中,我们讨论了一种使用最少次数的非相邻对翻转从二进制字符串中删除所有 0 的算法。该算法使用的方法是贪婪的,这使得它高效且易于实现。我们还提供了用于实现该算法的 C++ 代码以及示例测试用例。
这个问题也可以使用动态规划来解决,但贪心算法提供了一个更简单和更快的解决方案。该算法的时间复杂度为O(n),其中n是二进制字符串的长度。
总之,最小非相邻对翻转算法是字符串操作中的一个有用工具,可以应用于各种情境。
Das obige ist der detaillierte Inhalt vonMindestanzahl an Zeichen, die entfernt werden müssen, um eine Binärzeichenfolge in aufsteigender Reihenfolge zu sortieren. 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



Wie lösche ich Xiaohongshu-Notizen? Die meisten Benutzer wissen nicht, wie man Xiaohongshu-Notizen löscht. Als nächstes bringt der Editor den Benutzern Bilder und Texte zum Löschen von Xiaohongshu-Notizen ein Blick! Tutorial zur Verwendung von Xiaohongshu So löschen Sie Xiaohongshu-Notizen 1. Öffnen Sie zunächst die Xiaohongshu-App und rufen Sie die Hauptseite auf. Wählen Sie in der unteren rechten Ecke [Ich] aus, um den speziellen Bereich aufzurufen. 2. Klicken Sie dann im Bereich „Mein“ auf die Notizseite als Wählen Sie wie unten gezeigt die Notiz aus, die Sie löschen möchten. 3. Rufen Sie die Notizseite auf und klicken Sie auf [drei Punkte] in der oberen rechten Ecke. 4. Schließlich wird die Funktionsleiste unten erweitert. Klicken Sie zum Abschluss auf [Löschen].

1. Zunächst einmal ist es falsch, jemanden dauerhaft zu blockieren und zu löschen und ihn nicht dauerhaft hinzuzufügen. Wenn Sie die andere Partei hinzufügen möchten, nachdem Sie sie blockiert und gelöscht haben, benötigen Sie lediglich die Zustimmung der anderen Partei. 2. Wenn ein Benutzer jemanden blockiert, kann die andere Partei keine Nachrichten an den Benutzer senden, den Freundeskreis des Benutzers anzeigen oder mit dem Benutzer telefonieren. 3. Das Blockieren bedeutet nicht, dass die andere Partei aus der WeChat-Kontaktliste des Benutzers gelöscht wird. 4. Wenn der Benutzer den anderen Teilnehmer aus der WeChat-Kontaktliste des Benutzers löscht, nachdem er ihn blockiert hat, gibt es nach dem Löschen keine Möglichkeit, ihn wiederherzustellen. 5. Wenn der Benutzer die andere Partei erneut als Freund hinzufügen möchte, muss die andere Partei zustimmen und den Benutzer erneut hinzufügen.

Als beliebte soziale E-Commerce-Plattform hat Xiaohongshu eine große Anzahl von Nutzern angezogen, die ihr tägliches Leben und ihre Einkaufserlebnisse teilen. Manchmal veröffentlichen wir versehentlich unangemessene Inhalte, die rechtzeitig gelöscht werden müssen, um unser persönliches Image besser zu wahren oder die Plattformvorschriften einzuhalten. 1. Wie lösche ich Xiaohongshu-Veröffentlichungen? 1. Melden Sie sich bei Ihrem Xiaohongshu-Konto an und geben Sie Ihre persönliche Homepage ein. 2. Suchen Sie unten auf der persönlichen Homepage die Option „Meine Kreationen“ und klicken Sie zur Eingabe. 3. Auf der Seite „Meine Kreationen“ können Sie alle veröffentlichten Inhalte sehen, einschließlich Notizen, Videos usw. 4. Suchen Sie den Inhalt, der gelöscht werden muss, und klicken Sie rechts auf die Schaltfläche „…“. 5. Wählen Sie im Popup-Menü die Option „Löschen“. 6. Nach Bestätigung des Löschvorgangs verschwinden die Inhalte von Ihrer persönlichen Homepage und öffentlichen Seite.

Der Dateiübertragungsassistent von WeChat steht jedem Benutzer zur Verfügung. Einige Benutzer verwenden ihn als Notiz, um einige Dinge aufzuzeichnen. Wie kann man den WeChat File Transfer Assistant vollständig löschen? Lassen Sie mich es Ihnen im Folgenden ausführlich vorstellen. Wie lösche ich den WeChat File Transfer Assistant vollständig? Antwort: [WeChat]-[File Transfer Assistant lange drücken]-[Diesen Chat löschen]. Spezifische Schritte: 1. Öffnen Sie zuerst die WeChat-Software. Nachdem Sie die Startseite aufgerufen haben, suchen Sie nach [Dateiübertragungsassistent] und halten Sie gedrückt. 2. Dann wird ein Popup als ungelesen markiert. Den Chat oben anheften Zeigen Sie den Chat an und löschen Sie ihn. Hier können Sie auf [Diesen Chat löschen] klicken.

1. Öffnen Sie die Douyin-App, klicken Sie unten in der Benutzeroberfläche auf [Nachricht] und dann auf den Chat-Konversationseintrag, der gelöscht werden muss. 2. Drücken Sie lange auf einen beliebigen Chat-Datensatz, klicken Sie auf [Mehrfachauswahl] und markieren Sie die Chat-Datensätze, die Sie löschen möchten. 3. Klicken Sie auf die Schaltfläche [Löschen] in der unteren rechten Ecke und wählen Sie im Popup-Fenster [Löschen bestätigen] aus, um diese Datensätze dauerhaft zu löschen.

Auf Douyin können Benutzer nicht nur ihre Lebensdetails und Talente teilen, sondern auch mit anderen Benutzern interagieren. In diesem Prozess müssen wir manchmal Dateien wie Bilder, Videos usw. an andere Benutzer senden. Wie kann man also auf Douyin Dateien an andere senden? 1. Wie kann ich auf Douyin Dateien an andere senden? 1. Öffnen Sie Douyin und rufen Sie die Chat-Oberfläche auf, an die Sie Dateien senden möchten. 2. Klicken Sie in der Chat-Oberfläche auf das „+“-Zeichen und wählen Sie „Datei“. 3. In den Dateioptionen können Sie auswählen, ob Sie Bilder, Videos, Audiodateien und andere Dateien senden möchten. Nachdem Sie die Datei ausgewählt haben, die Sie senden möchten, klicken Sie auf „Senden“. 4. Warten Sie, bis die andere Partei Ihre Datei akzeptiert. Sobald die andere Partei sie akzeptiert, wird die Datei erfolgreich übertragen. 2. Wie lösche ich Dateien, die auf Douyin an andere gesendet wurden? 1. Öffnen Sie Douyin und geben Sie den von Ihnen gesendeten Text ein.

Xiaohongshu ist eine beliebte Social-E-Commerce-Plattform und interaktive Kommentare zwischen Benutzern sind eine unverzichtbare Kommunikationsmethode auf der Plattform. Gelegentlich stellen wir möglicherweise fest, dass unsere Kommentare von anderen gelöscht wurden, was verwirrend sein kann. 1. Wie kann ich die gelöschten Kommentare einer anderen Person zu Xiaohongshu wiederherstellen? Wenn Sie feststellen, dass Ihre Kommentare gelöscht wurden, können Sie zunächst versuchen, direkt nach relevanten Beiträgen oder Produkten auf der Plattform zu suchen, um zu sehen, ob Sie den Kommentar noch finden können. Wenn der Kommentar nach dem Löschen immer noch angezeigt wird, wurde er möglicherweise vom ursprünglichen Beitragseigentümer gelöscht. Sie können jetzt versuchen, den ursprünglichen Beitragseigentümer zu kontaktieren, um ihn nach dem Grund für das Löschen des Kommentars zu fragen und die Wiederherstellung des Kommentars zu beantragen. Wenn ein Kommentar vollständig gelöscht wurde und nicht im ursprünglichen Beitrag gefunden werden kann, sind die Chancen, dass er wieder auf der Plattform eingestellt wird, relativ gering. Sie können andere Wege ausprobieren

Wenn Sie im Büroalltag einen Text von einer Website kopieren und direkt in Word einfügen, sehen Sie häufig einen [Abwärtspfeil], der durch Auswählen gelöscht werden kann, wenn es jedoch zu viele sind solche Symbole. Gibt es also eine schnelle Möglichkeit, alle Pfeile zu löschen? Deshalb werde ich Ihnen heute die spezifischen Schritte zum Löschen des Abwärtspfeils in Word mitteilen! Zunächst einmal steht der [Abwärtspfeil] in Word tatsächlich für [Manueller Zeilenumbruch]. Wir können alle [Abwärtspfeile] durch [Absatzmarkierung]-Symbole ersetzen, wie in der Abbildung unten gezeigt. 2. Dann wählen wir die Option [Suchen und Ersetzen] in der Menüleiste (wie im roten Kreis in der Abbildung unten dargestellt). 3. Klicken Sie dann auf den Befehl [Ersetzen]. Es erscheint ein Popup-Fenster. Klicken Sie auf [Sondersymbole].
