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

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

作者: 旺叔叔 | 来源:发表于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