美文网首页
平衡括号(二)——判断平衡括号扩展

平衡括号(二)——判断平衡括号扩展

作者: 旺叔叔 | 来源:发表于2018-10-31 04:59 被阅读0次

    LeetCode_856_ScoreOfParentheses

    题目分析:

    利用上题提到的平衡括号特性,判断当前串是 AB 型 还是 (A)型即可。
    从第一个字符开始数子串,第一个"("个数等于")"个数的子串
    即是一个完整的平衡括号串。
    递归妙不可言
    

    解法:

    public static int scoreOfParentheses(String S) {
        if(S.equals("()"))
            return 1;
        int left = 0, right = 0;
        int i = 0;
        for (; i < S.length(); i++) {
            if('(' == S.charAt(i))
                left++;
            else right++;
            if(left <= right)
                break;
        }
        if(i != S.length() - 1)//如果i不是S.length() - 1 i是从0开始的有效串的最后一位
            return scoreOfParentheses(S.substring(0, i + 1)) + scoreOfParentheses(S.substring(i + 1, S.length()));
        else
            return 2 * scoreOfParentheses(S.substring(1, S.length() - 1));
    }

    相关文章

      网友评论

          本文标题:平衡括号(二)——判断平衡括号扩展

          本文链接:https://www.haomeiwen.com/subject/zclotqtx.html