• 1021-删除最外层的括号


    有效括号字符串为空 ("")、"(" + 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:
    
    输入:"()()"
    输出:""
    解释:
    输入字符串为 "()()",原语化分解得到 "()" + "()",
    删除每个部分中的最外层括号后得到 "" + "" = ""。
    
    
    解法1:计数法
     public String removeOuterParentheses(String S) {
            int num1=0;
            int num2=0;
            int temp=0;
            StringBuilder s=new StringBuilder("");
            for (int i=0;i<S.length();i++){
                if (S.charAt(i)=='('){
                    num1++;
                }else {
                    num2++;
                }
                if (num1==num2)
                {
                    s.append(S.substring(temp+1,i));
                    temp=num1+num2;
                }
    
            }
            return s.toString();
        }
  • 相关阅读:
    各个地区的经纬度
    frp代理windows远程桌面
    ios软件上架备忘
    电力知识收集
    卸载阿里云云盾(安骑士)(Agent)
    chrome 调试动画方式
    gin nginx 获取不到真实ip 一直是127.0.0.1 c.ClientIP()获取不到真实ip
    https双向认证 本地创建自定义证书 nginx配置https双向认证
    win10开机自动运行exe程序
    Gin框架之Session的使用(详解)
  • 原文地址:https://www.cnblogs.com/dloading/p/10879504.html
Copyright © 2020-2023  润新知