Home >Backend Development >PHP Problem >How to remove the outermost parentheses in php

How to remove the outermost parentheses in php

coldplay.xixi
coldplay.xixiOriginal
2020-08-29 13:28:132071browse

php method to remove the outermost parentheses: first perform primitive decomposition on the non-empty valid string S; then obtain the valid bracket string primitive; then delete and decompose the most primitive string of each primitive string Outer brackets; finally return the string S.

How to remove the outermost parentheses in php

Related learning recommendations: php graphic tutorial

php method to remove the outermost parentheses:

The valid bracket string is empty (""), "(" A ")" or A B, where A and B are both is a valid bracketed string, representing the concatenation of strings. For example, "", "()", "(())()" and "(()(()))" are all valid bracket strings.

If the valid string S is non-empty and there is no way to split it into S = A B, we call it a primitive, where A and B are both non-empty valid bracket strings.

Given a non-empty valid string S, consider decomposing it into primitives such that: S = P_1 P_2 ... P_k, where P_i is a valid bracket string primitive.

Perform primitive decomposition on S, delete the outermost brackets of each primitive string in the decomposition, and return S.

Example 1:

Input: "(()())(())"

Output: "()()()"

Explanation:

The input string is "(()())(())", and the primitive decomposition is "(() ())" "(())",

After deleting the outermost bracket in each part, we get "()()" "()" = "()()()".

Example 2:

Input: "(()())(())(()(()))"

Output: "()()()()(())"

Explanation:

The input string is "(()())(()) (()(()))", primitive decomposition yields "(()())" "(())" "(()(()))",

Delete every other part After the outermost bracket in , we get "()()" "()" "()(())" = "()()()()(())".

Example 3:

Input: "()()"

Output: ""

Explanation:

The input string is "()()", and the primitive decomposition is "()" "()".

Delete the outermost brackets in each part Then get "" "" = "".

Tips:

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

Related learning recommendations: php programming (video)

The above is the detailed content of How to remove the outermost parentheses in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn