2914. Mindestanzahl an Änderungen, um Binärzeichenfolgen schön zu machen
Schwierigkeit:Mittel
Themen:String
Sie erhalten eine 0-indizierte Binärzeichenfolge s mit gerader Länge.
Ein String ist schön, wenn es möglich ist, ihn in einen oder mehrere Teilstrings zu unterteilen, sodass:
Sie können jedes Zeichen in s in 0 oder 1 ändern.
Gib die Mindestanzahl der Änderungen zurück, die erforderlich sind, um die Zeichenfolge schön zu machen.
Beispiel 1:
Beispiel 2:
Beispiel 3:
Einschränkungen:
Hinweis:
Lösung:
Wir müssen sicherstellen, dass jedes Zeichenpaar in der Binärzeichenfolge s entweder „00“ oder „11“ ist. Wenn ein Paar nicht in einem dieser beiden Muster enthalten ist, müssen wir eines der Zeichen ändern, damit es übereinstimmt.
Hier ist der schrittweise Lösungsansatz:
Teilen Sie die Zeichenfolge in Blöcke: Da eine schöne Zeichenfolge aus Blöcken der Länge 2 gebildet werden kann, können wir die Zeichenfolge in 2er-Schritten durchlaufen.
Änderungen zählen: Für jeden Block mit 2 Zeichen müssen wir das Mehrheitszeichen bestimmen (entweder 0 oder 1). Wir werden das Minderheitszeichen im Block so ändern, dass es mit dem Mehrheitszeichen übereinstimmt.
Mindeständerungen berechnen: Wenn beide Zeichen unterschiedlich sind, benötigen wir für jeden Block 1 Änderung; Wenn sie gleich sind, sind keine Änderungen erforderlich.
Lassen Sie uns diese Lösung in PHP implementieren: 2914. Mindestanzahl an Änderungen, um Binärzeichenfolgen schön zu machen
Erläuterung:
Funktionsdefinition: Wir definieren eine Funktion minChanges, die eine Binärzeichenfolge s akzeptiert.
Initialisierung: Wir initialisieren eine Variable $changes, um die Anzahl der erforderlichen Änderungen zu verfolgen.
Über die Zeichenfolge iterieren: Wir durchlaufen die Zeichenfolge und erhöhen jedes Mal um 2, um jeden Block aus zwei Zeichen zu überprüfen:
- $first ist das Zeichen an der aktuellen Position.
- $second ist das Zeichen an der nächsten Position.
Auf Änderungen prüfen: Wenn die Zeichen im aktuellen Block unterschiedlich sind, erhöhen wir den $changes-Zähler um 1.
Ergebnis zurückgeben: Abschließend geben wir die Gesamtzahl der erforderlichen Änderungen zurück.
Komplexität:
Diese Lösung arbeitet mit O(n) Zeitkomplexität, wobei n die Länge der Zeichenfolge ist, was sie für die gegebenen Einschränkungen effizient macht.
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt vonMindestanzahl an Änderungen, um Binärzeichenfolgen schön zu machen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!