• 技术文章 >后端开发 >PHP问题

    php如何去除最外层小括号

    coldplay.xixicoldplay.xixi2020-08-29 13:28:13原创976

    php去除最外层小括号的方法:首先对非空有效字符串S进行原语化分解;然后得到有效括号字符串原语;接着删除分解其中每个原语字符串的最外层括号;最后返回字符串S即可。

    相关学习推荐:php图文教程

    php去除最外层小括号的方法:

    有效括号字符串为空 ("")、"(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 "(()(()))" 都是有效的括号字符串。

    如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 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 = '';
            $sum = 0;
            $star = 1;
            for($i=0;$i<$strlen;$i++){
                if($S[$i] == '('){
                    $sum--;
                }else{
                    $sum++;
                }
                if($sum == 0){
                    $str.=substr($S,$star,$i-$star);
                    $star = $i+2;
                }
            }
            return $str;
        }
    }

    相关学习推荐:php编程(视频)

    以上就是php如何去除最外层小括号的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 小括号
    上一篇:php get和set方法如何使用 下一篇:php中转换字符串大小写用什么函数
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 解析Javascript小括号“()”的多义性_javascript技巧• smarty四则运算里面如何用小括号• 正则匹配从第一个小括号开始到最后一个小括号里的内容• php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符_PHP教程• JS+正则取得小括号、中括号及花括号内容步骤详解
    1/1

    PHP中文网