Aktueller Standort: Startseite> Neueste Artikel> Wechseln Sie den Inhalt jedes Klammers in einer String -Php -Implementierungsdetails um

Wechseln Sie den Inhalt jedes Klammers in einer String -Php -Implementierungsdetails um

M66 2025-09-24

Substrings zwischen jedem Klammpaar umkehren

Bei einer Zeichenfolge, die Kleinbuchstaben und Klammern enthält, besteht die Aufgabe darin, von den innersten Klammern aus zu beginnen, die Zeichenfolge in jedem Paar passende Klammern umzukehren und schließlich das verarbeitete Ergebnis ohne Klammern zurückzugeben.

Beispiel

eingeben:

S = "(ABCD)"

Ausgabe:

"DCBA"

Beispiel 2:

eingeben:

s = "(u (Liebe) i)"

Ausgabe:

"ich liebe dich"

Erläuterung: Umdrehen Sie zuerst die Substring "Liebe" und dann die gesamte Zeichenfolge um.

Beispiel 3:

eingeben:

s = "(ed (et (oc)) el)"

Ausgabe:

"Leetcode"

Beschreibung: Zuerst umkehren wir das Substring "OC", dann "etco" und schließlich die gesamte Zeichenfolge.

Zwang

  • S enthält nur englische Kleinbuchstaben und Klammern.
  • Stellen Sie sicher, dass alle Klammern ausgeglichen sind.

Lösung

Wir können den Stapel verwenden, um die Charaktere in Klammern und verschachtelten Strukturen zu verfolgen. Die spezifischen Schritte sind wie folgt:

  • Iteriert jedes Zeichen in der Zeichenfolge.
  • Wenn Sie auf die Eröffnungsklasse stoßen "(", schieben Sie sie auf den Stapel.
  • Wenn die Schlussklammer ")" auftritt, wird der Charakter aus dem Stapel bis zur Eröffnungsklasse "(" die Charaktere in die Klammer umkehren und sie zurück in den Stapel drücken.
  • Schließlich werden die Inhalte im Stapel verkettet, um die umgekehrte Zeichenfolge zu erhalten.

Beispiel für PHP -Implementierungscode:

 <?php
// Beispiel 1
echo reverseParentheses("(abcd)") . "\n";  // Ausgabe:"dcba"

// Beispiel 2
echo reverseParentheses("(u(love)i)") . "\n";  // Ausgabe:"iloveu"

// Beispiel 3
echo reverseParentheses("(ed(et(oc))el)") . "\n";  // Ausgabe:"leetcode"
?>

erklären

Die Funktion ReverseParentheses nimmt eine Zeichenfolge als Eingabe und verwendet einen Stapel, um verschachtelte Klammern zu verarbeiten.

  • Wenn die Schlussklasse ")" auftritt, werden die Charaktere aus dem Stapel bis zur Eröffnungsklasse angefangen "(".
  • Kehren Sie die gepackten Charaktere um und schieben Sie sie zurück in den Stapel.
  • Wenn die Charaktere keine Klammern sind, werden sie direkt auf den Stapel platziert.

Schließlich verkettet die Elemente im Stapel, um die endgültige Saite zu erhalten. Diese Methode kann verschachtelte Klammern effektiv verarbeiten und die richtige Zeichenreihenfolge sicherstellen, nachdem der Inhalt in jedem Klammpaar umgekehrt ist.