# 如果 stack 不是空的,且最後一個 append 進 stack 的元素 [ == 對應的元素 [ 的話 if stack and stack[-1] == close_bracket_key_hashmap[c]: stack.pop() # 就把最後一個元素 pop 掉 else: returnFalse# 如果不是對應的元素,就直接 return False
# 此時的 stack = [ '(' ] ...
# 重複以上流程,直到 s 的所有元素都被處理完
時間與空間複雜度:
TC:O(n)
SC:O(n)
Brute Force
1 2 3 4 5 6
classSolution: defisValid(self, s: str) -> bool: # Brute Force 判斷 s 是否為空字串 while"()"in s or"[]"in s or"{}"in s: s = s.replace("()", "").replace("[]", "").replace("{}", "") # 刪除所有配對的括號 return s == ""
留言版