-
Notifications
You must be signed in to change notification settings - Fork 0
/
0206Leetcode.js
62 lines (50 loc) · 1.54 KB
/
0206Leetcode.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
58
59
60
// 1. Valid Parentheses
// conditions
// 1)once bracket is open, it should be closed
// 2) brackets are supposed to open and close in right order
// var isValid = function (s) {
// const stack = [];
// for (let i = 0 ; i < s.length ; i++) {
// let c = s[i]
// switch(c) {
// case '(': stack.push(')');
// break;
// case '[': stack.push(']');
// break;
// case '{': stack.push('}');
// break;
// default:
// // once you pop, stack array is mutated
// if (c !== stack.pop()) {
// // if parenthese poped from array is not matching with c, this function returns false. If not, it's just removed(pop) and move onto next iteration.
// return false;
// }
// }
// }
// return stack.length === 0;
// };
// isValid('{[]}{}')
// // isValid('{[(}{')
// // isValid('{[]}{')
// console.log(isValid('{[]}[]'));
var isValid = function(s) {
let newArr = []
for(let i=0; i<s.length; i++){
if(s[i] === '('){
newArr.push(')')
}else if(s[i] === '['){
newArr.push(']')
}else if(s[i] === '{'){
newArr.push('}')
}else if(s[i] !== newArr.pop()){
// console.log(s[i]);
return false
}
}
// console.log(newArr);
return newArr.length === 0;
};
console.log(isValid('{[]}{}'));
console.log(isValid('{[(}{'));
console.log(isValid('{[]}{'));
console.log(isValid('{[]}[]'));