JavaScript LeetCode 20. Valid Parentheses
紀錄 LeetCode 20. Valid Parentheses 解題過程與思路
判斷括號是否成對出現,這題應該用來判斷你對 stack 的靈敏度?大概想法就是用 stack 後進先出的機制來判斷是否前後成對。
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function (s) {
let map = {
")": "(",
"}": "{",
"]": "[",
};
let stack = [];
if (s==='' || s.length % 2 !== 0) {
return false;
}
for (let i = 0; i < s.length; i++) {
const str = s[i];
if (str in map) {
const last = stack.pop()
if (map[str] === last) {
continue
}
}
stack.push(str);
}
return stack.length === 0;
};
使用 continue 就可以略過 push 進 stack 不過缺點就是這樣要把迴圈跑完才能知道結果,感覺如果加上一個提早跳出的判斷,可能會讓 Runtime 提高。