有效括号字符串为空 ("")、"(" + 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;
    }
}

最新文章

  1. 为WLW开发Latex公式插件
  2. 从零开始学Python06作业思路:学生选课系统
  3. Progress.js – 为页面上的任意对象创建进度条效果
  4. 矿场搭建(codevs 1996)
  5. spider
  6. html5外包—长年承接html5外包业务:《Sencha Touch权威指南》下载
  7. javascript一些有用但又不常用的特性
  8. ComboBox控件绑定数据源
  9. 全然符合package.json在CommonJS中的规范
  10. Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)
  11. Django学习手册 - CURD组件
  12. 如何使用Nunit进行测试(Visual Studio 2017 comminity)
  13. 机器学习编程语言之争,Python夺魁
  14. Springboot打包war
  15. jQuery UI 拖拽-拉伸
  16. asp.net core webapi 日期返回中出现字母T
  17. ubuntu14.04 64位JDK安装
  18. 《图解HTTP》总结 - 思维导图版
  19. Laya1.x Timer小记
  20. 【CMS】安装CMS

热门文章

  1. C++ 操作json文件
  2. 20140613 Opencv重新编译 word小技巧
  3. Straight Master (贪心)
  4. python学习笔记(十)——正则表达式和re模块
  5. js 404页面跳转
  6. 小程序登录时如何获取input框中的内容
  7. dubbo入门之服务消费
  8. ThinkPHP框架数组定义
  9. JavaWeb学习篇之----Session&amp;&amp;Cookie
  10. Delphi中关于菜单的几个技巧