【初级】给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效

有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。
输入:s = "()[]{}"
输出:true

输入:s = "([)]"
输出:false

输入:s = "([])"
输出:true
1
2
3
4
5
6
7
8
var isValid = function(s) {
    const stack = []

    for (let i = 0, len = s.length; i < len; i++) {
        const lastCh = stack[stack.length - 1] || '';
        const pair = lastCh + s[i];

        // ()[]{}
        if (pair === '()' || pair === '[]' || pair === '{}') {
            stack.pop();
        } else {
            stack.push(s[i])
        }
    }

    if (!stack.length) {
        return true;
    }
    return false;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20