zoukankan      html  css  js  c++  java
  • 删除最外层的括号

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

      输入:"()()"
      输出:""
      解释:
      输入字符串为 "()()",原语化分解得到 "()" + "()",
      删除每个部分中的最外层括号后得到 "" + "" = ""。

     

    代码:

    string removeOuterParentheses(string S) {
        int L=1;int R=0;
        string ans;
        for(int i=1;i<S.size();i++){
            if(S[i]=='(')L++;
            else R++;
            if(R!=L)ans.push_back(S[i]);
            else {
                i++;L=1;R=0;
            }
        }
        return ans;
    }

     

    因上求缘,果上努力~~~~ 作者:每天卷学习,转载请注明原文链接:https://www.cnblogs.com/BlairGrowing/p/12815505.html

  • 相关阅读:
    Funny Car Racing
    [LDUoj 倍增] 题解
    [HDU7073] Integers Have Friends 2.0 -随机大法好
    【spring】全局异常 globalexception 处理
    【maven】测试
    【spring】spring aop
    jvm常用排错命令
    idea tools
    idea插件
    【maven】搭建maven私服--基于CentOS7.6+docker
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/12815505.html
Copyright © 2011-2022 走看看