Aktueller Standort: Startseite> Neueste Artikel> PHP implementiert eine effiziente Methode, um Substrings in Klammern zu invertieren

PHP implementiert eine effiziente Methode, um Substrings in Klammern zu invertieren

gitbox 2025-08-07

Häufig gestellte Fragen in der String -Verarbeitung

Während des Programmiervorgangs ist die String -Verarbeitung eine sehr häufige Anforderung. Besonders bei der Begegnung von Klammern und ihren verschachtelten Strukturen macht es Entwicklern häufig zu Problemen, Substrings in Klammern umzukehren. In diesem Artikel wird vorgestellt, wie die Zeichenfolgen in jedem Paar Klammern von Problembeschreibung, Algorithmus -Ideen zu bestimmten Implementierungen umgekehrt werden können.

Problembeschreibung

Bei einer Zeichenfolge, die normale Zeichen und Klammern enthält, ist das Ziel, den Inhalt zwischen jedem Klammpaar umzukehren. Geben Sie beispielsweise "(ABC) DE (FGH)" ein und der erwartete Ausgang ist "cbadehgf". Solche Probleme können effektiv durch klare Regeln und Schritte gelöst werden.

Eingangs- und Ausgangsbeispiele

Die folgenden Beispiele helfen dabei, das Problem zu verstehen:

 eingeben: "(xyz)(abc)"
Ausgabe: "zyxcba"

eingeben: "a(bc(de)fg)h"
Ausgabe: "ahgfedcba"

Implementierungsideen

Die am besten geeignete Datenstruktur zur Lösung dieses Problems ist der Stapel, da der Stapel die verschachtelten Hierarchien von Klammern problemlos verwalten kann. Der Gesamtprozess ist wie folgt:

  • Initialisiert einen Stapel und eine Variable, die zum Spleißen der Stromzeichenfolge verwendet wird.
  • Iterieren Sie durch jedes Zeichen der Zeichenfolge:
    • Wenn die Öffnungshalterung "(" ("die aktuelle Zeichenfolge in den Stapel drücken und die aktuelle Zeichenfolge löschen, um den Inhalt in den Klammern zu verarbeiten.
    • Wenn die Schließklasse auftritt, ist die aktuelle Zeichenfolge invertiert und mit der oberen Zeichenfolge auf dem Stapel gespleißt, um die aktuelle Zeichenfolge zu aktualisieren.
    • Andere Zeichen werden direkt zum aktuellen Zeichenfolge hinzugefügt.
  • Nach Abschluss des Traversals ist die aktuelle Zeichenfolge das Endergebnis.

Beispiel für PHP -Code

 function reverseParentheses($s) {
    $stack = [];
    $currentString = "";
    for ($i = 0; $i < strlen($s); $i++) {
        $char = $s[$i];
        if ($char === '(') {
            array_push($stack, $currentString);
            $currentString = "";
        } elseif ($char === ')') {
            $currentString = strrev($currentString);
            if (!empty($stack)) {
                $currentString = array_pop($stack) . $currentString;
            }
        } else {
            $currentString .= $char;
        }
    }
    return $currentString;
}

// Beispielanruf
echo reverseParentheses("(abc)de(fgh)"); // Ausgabe cbadehgf

Leistungsanalyse

Die zeitliche Komplexität dieser Methode ist O (n) und n ist die Länge der Eingangszeichenfolge, da auf jedes Zeichen einmal zugegriffen wird. Die räumliche Komplexität ist auch O (n), mit der der Stapel und die aktuelle Zeichenfolge gespeichert werden.

Zusammenfassen

Die Verwendung der Stapelstruktur zum Umkehr von Substrings in Klammern ist eine effiziente Lösung für solche Probleme. Die in diesem Artikel eingeführten Ideen- und Code-Beispiele eignen sich bei Referenzanwendungen bei der Begegnung mit ähnlichen Anforderungen an die String-Verarbeitungsanforderungen in tatsächlichen Projekten und helfen Entwicklern dabei, die Codierungseffizienz und die Fähigkeiten zur Problemlösung zu verbessern.