-
Notifications
You must be signed in to change notification settings - Fork 0
/
有效的括号.js
57 lines (55 loc) · 1.37 KB
/
有效的括号.js
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// 题目
// https://leetcode-cn.com/problems/valid-parentheses/
// 解题
/**
* @param {string} s
* @return {boolean}
*/
let s = ']'
var isValid = function(s) {
// 1、replace
// while(s.includes('{}') || s.includes('()') || s.includes('[]')) {
// s = s.replace('{}', '')
// s = s.replace('[]', '')
// s = s.replace('()', '')
// }
// return s === ''
// 2、stack
if (s.length % 2 !==0) {
return false
}
const items = []
for (let i = 0; i < s.length; i ++) {
const letter = items[items.length - 1]
switch(s[i]) {
case '{':
items.push('{')
break
case '(':
items.push('(')
break
case '[':
items.push('[')
break
case '}':
if (letter !== '{' ) {
return false
}
items.pop()
break
case ']':
if (letter !== '[' ) {
return false
}
items.pop()
break
case ')':
if (letter !== '(' ) {
return false
}
items.pop()
break
}
}
return items.length === 0
};