# 有效的括号
# 解题思路
- 数组模拟栈
- 遍历字符串,匹配栈顶,匹配上则出栈
- 最后返回栈是否为空来判断是否为有效匹配
# 代码
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19