ホームページ >バックエンド開発 >PHPの問題 >PHPで一番外側の括弧を削除する方法

PHPで一番外側の括弧を削除する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-08-29 13:28:132073ブラウズ

最も外側の括弧を削除する

php メソッド: 最初に空ではない有効な文字列 S に対してプリミティブ分解を実行し、次に有効な括弧文字列プリミティブを取得し、次に各プリミティブ文字列の最もプリミティブな文字列を削除して分解します。最後に文字列 S を返します。

PHPで一番外側の括弧を削除する方法

#【

関連する学習の推奨事項: php グラフィック チュートリアル #】

php の最も外側の括弧を削除するメソッド:

有効な括弧文字列は空 ("")、"(" A ")"、または A B です。A と B は両方とも a です。文字列の連結を表す有効な括弧で囲まれた文字列。たとえば、「」、「()」、「(())()」、および「(()(()))」はすべて有効な括弧文字列です。

有効な文字列 S が空ではなく、それを S = A B に分割する方法がない場合、それをプリミティブと呼びます。ここで、A と B は両方とも空ではない有効な括弧文字列です。

空ではない有効な文字列 S が与えられた場合、それを次のようなプリミティブに分解することを検討してください: S = P_1 P_2 ... P_k (P_i は有効な括弧文字列プリミティブ)。

S に対してプリミティブ分解を実行し、分解内の各プリミティブ文字列の最も外側の括弧を削除して、S を返します。

例 1:

入力: "(()())(())"

出力: "()()()"

説明:

入力文字列は "(()())(())"、プリミティブ分解は "(() ())" (())",

各部分の一番外側の括弧を削除すると、「()()」「()」 = 「()()()」となります。

例 2:

入力: "(()())(())(()(()))"

出力: "()()()()(())"

説明:

入力文字列は "(()())(()) (()(()))"、プリミティブ分解により "(()())" "(())" "(()(()))"、

すべての部分を削除します。の一番外側の括弧では、「()()」「()」「()(())」 = 「()()()()(())」とな​​ります。

#例 3:

#入力: "()()"

出力: ""

説明:

入力文字列は「()()」、プリミティブ分解は「()」「()」です。

各部分の一番外側のかっこを削除して、「」を取得します。 「」「」=「」。

# ヒント:

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;
    }
}

関連学習の推奨事項: php プログラミング

(ビデオ)

# #

以上がPHPで一番外側の括弧を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。