今天早起上班好累,但還是要堅持每日一題!
今日LeetCode題目大意: 給一個只包含 '(', ')', '{', '}', '[', ']' 的字串,判斷它是不是「有效括號」。
規則:
左括號必須以正確順序,由相同類型的右括號關閉
範例:
"()" → true
"()[]{}" → true
"(]" → false
"([)]" → false
"{[]}" → true
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>(); **//建立一個 堆疊 (Stack) 來暫存括號**
for (char c : s.toCharArray()) {
if (c == '(') {
stack.push(')'); **//如果遇到左括號 (,就把它對應的 右括號 ) 放進堆疊**
} else if (c == '{') {
stack.push('}');
} else if (c == '[') {
stack.push(']');
} else {
if (stack.isEmpty() || stack.pop() != c) {
return false;
}
}
}
return stack.isEmpty();
}
}