Heim >Backend-Entwicklung >PHP-Problem >So entfernen Sie die äußersten Klammern in PHP

So entfernen Sie die äußersten Klammern in PHP

coldplay.xixi
coldplay.xixiOriginal
2020-08-29 13:28:132073Durchsuche

So entfernen Sie die äußersten Klammern in PHP: Führen Sie zunächst eine Primitivzerlegung für die nicht leere gültige Zeichenfolge S durch. Anschließend löschen Sie die äußersten Klammern, die jede Primitivzeichenfolge zerlegen.

So entfernen Sie die äußersten Klammern in PHP

Verwandte Lernempfehlungen: php-Grafik-Tutorial

php-Methode zum Entfernen der äußersten Klammer:

Die gültige Klammerzeichenfolge ist leer (""), " (" + A + ")" oder A + B, wobei A und B beide gültige Zeichenfolgen in Klammern sind und + die Verkettung von Zeichenfolgen darstellt. Beispielsweise sind „“, „()“, „(())()“ und „(()(()))“ gültige Klammerzeichenfolgen.

Wenn die gültige Zeichenfolge S nicht leer ist und es keine Möglichkeit gibt, sie in S = A+B aufzuteilen, nennen wir sie ein Primitiv, wobei A und B beide nicht leere gültige Klammerzeichenfolgen sind.

Wenn eine nicht leere gültige Zeichenfolge S gegeben ist, sollten Sie erwägen, sie in Primitive zu zerlegen, sodass: S = P_1 + P_2 + ... + P_k, wobei P_i ein gültiges in Klammern gesetztes String-Primitiv ist.

Führen Sie eine primitive Zerlegung für S durch, entfernen Sie die äußersten Klammern jeder primitiven Zeichenfolge in der Zerlegung und geben Sie S zurück.

Beispiel 1:

Eingabe: „(()())(())“

Ausgabe: „()()()“

Erklärung:

Die Eingabezeichenfolge ist „( ()())(())“, die primitive Zerlegung ergibt „(()())“ + „(())“,

Nach dem Löschen der äußersten Klammer in jedem Teil erhalten wir „()( )“ + „()“ = „()()()“.

Beispiel 2:

Eingabe: "(()())(())(()(()))"

Ausgabe: "()()()()(()) „

Erklärung:

Die Eingabezeichenfolge ist „(()())(())(()(()))“ und die primitive Zerlegung ist „(()())“ + „(() )“ + „(()(()))“,

Nachdem wir in jedem Teil die äußersten Klammern gelöscht haben, erhalten wir „()()“ + „()“ + „()(())“ = „ ( )()()()(())".

Beispiel 3:

Eingabe: „()()“

Ausgabe: „“

Erklärung:

Die Eingabezeichenfolge ist „()()“ und die primitive Zerlegung ist „() „ + „()“,

Das Entfernen der äußersten Klammer in jedem Teil führt zu „“ + „“ = „“.

Tipps:

S.length <= 10000
S[i] 为 "(" 或 ")"
S 是一个有效括号字符串
来源:力扣(LeetCode)
class Solution {
    /**
     * @param String $S
     * @return String
     */
    function removeOuterParentheses($S) {
        $strlen = strlen($S);
        $str = &#39;&#39;;
        $sum = 0;
        $star = 1;
        for($i=0;$i<$strlen;$i++){
            if($S[$i] == &#39;(&#39;){
                $sum--;
            }else{
                $sum++;
            }
            if($sum == 0){
                $str.=substr($S,$star,$i-$star);
                $star = $i+2;
            }
        }
        return $str;
    }
}

Verwandte Lernempfehlungen: php-Programmierung (Video)

Das obige ist der detaillierte Inhalt vonSo entfernen Sie die äußersten Klammern in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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