,

括号的最大嵌套深度

给定 有效括号字符串 s,返回 s 的 嵌套深度。嵌套深度是…

给定 有效括号字符串 s,返回 s 的 嵌套深度。嵌套深度是嵌套括号的 最大 数量。

示例 1:

输入:s = “(1+(2*3)+((8)/4))+1″

输出:3

解释:数字 8 在嵌套的 3 层括号中。

示例 2:

输入:s = “(1)+((2))+(((3)))”

输出:3

解释:数字 3 在嵌套的 3 层括号中。

示例 3:

输入:s = “()(())((()()))”

输出:3

提示:

  • 1 <= s.length <= 100
  • s 由数字 0-9 和字符 '+''-''*''/''('')' 组成
  • 题目数据保证括号字符串 s 是 有效的括号字符串

思路:

  1. 维护当前深度 cur、最大深度 max

2. 碰到 (:cur++,更新 max

3. 碰到 ):cur–

var maxDepth = function(s) {
    let maxDeep = 0;
    let curDeep = 0;
    for(const ch of s){
        if(ch==='('){
            curDeep++;
            maxDeep = Math.max(curDeep,maxDeep);
        }
        if(ch===')'){
            curDeep--;
        }
    }
    return maxDeep;
};

栈实现方法类似

function maxDepth(s) {
    const stack = [];
    let max = 0;
    for (const c of s) {
        if (c === '(') {
            stack.push(c);
            max = Math.max(max, stack.length);
        } else if (c === ')') {
            stack.pop();
        }
    }
    return max;
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About the Author

每个人都有自己得时区,在自己得时区里,一切都是准时的。

BlockSpare — News, Magazine and Blog Addons for (Gutenberg) Block Editor