問題:
給一括號字串,檢查括號順序是否正確
範例:
1. 輸入: s = "()[]{}"
輸出: true
2. 輸入: s = "(]"
輸出: false
3. 輸入: s = "([)]"
輸出: false
提問:
沒有,也許可以問一下空字串的處理
一般想法:
放stack,成功配對就拿掉。
進階解法:
沒有。看stack要放左括號還是右括號,速度都差不多
程式:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
}; |
文章標籤
全站熱搜