問題:
給一括號字串,檢查括號順序是否正確

範例:
1. 輸入: s = "()[]{}"
    輸出: true
2. 輸入: s = "(]"
    輸出: false
3. 輸入: s = "([)]"
    輸出: false


提問:
沒有,也許可以問一下空字串的處理

一般想法:
放stack,成功配對就拿掉。

進階解法:
沒有。看stack要放左括號還是右括號,速度都差不多

程式:
 

var isValid = function (s) {
if (s.length == 0) return false;
if (s.length % 2 != 0) return false;
let stack = []
for (let i = 0; i < s.length; i++) {
let char = s.charAt(i);
switch (char) {
case ")":
if (stack.pop() != "(") return false;
break;
case "}":
if (stack.pop() != "{") return false;
break;
case "]":
if (stack.pop() != "[") return false;
break;
default:
stack.push(char);
break;
}
}
return stack.length == 0;
};
arrow
arrow
    創作者介紹
    創作者 讀樂島主 的頭像
    讀樂島主

    讀樂島

    讀樂島主 發表在 痞客邦 留言(0) 人氣()