# 有效的括号

leetcode (opens new window)

# 解题思路

  1. 数组模拟栈
  2. 遍历字符串,匹配栈顶,匹配上则出栈
  3. 最后返回栈是否为空来判断是否为有效匹配

# 代码

var isValid = function(s) {
    let stack = [];

    for (let char of s) {
        if (stack.length > 0 && match(stack[stack.length - 1], char)) {
            stack.pop();
        } else {
            stack.push(char);
        }
    }

    return stack.length === 0;
};

function match(left, right) {
    return (left === '(' && right === ')')
    || (left === '{' && right === '}')
    || (left === '[' && right === ']');
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
上次更新: 1/5/2022, 9:25:14 AM