Leetcode题解之 —— 有效的括号

思路


堆栈

  • 空字符串情况
  • stack, map
  • 后进先出

题解


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function (s) {
if (s === '') {
return true;
}

const [stack, map, len] = [[], new Map([
['(', ')'],
['[', ']'],
['{', '}'],
]), s.length];
let count = 0;

while (count < len) {
if (!stack.length) {
stack.push(s[count]);
} else {
if (s[count] === map.get(stack[stack.length - 1])) {
stack.pop();
} else {
stack.push(s[count]);
}
}
count++;
}

return !stack.length;
};