LeetCode 筆記 - 20. Valid Parentheses

解析如何判定括號字串的合法性。本文利用堆疊(Stack)先進後出的特性,當遇到左括號時壓入,遇到右括號時彈出並檢查是否成對。這是一個理解堆疊資料結構在處理巢狀結構(如編譯器解析)中扮演關鍵角色的經典範例。

發佈
閱讀
約 1 分鐘
字數
253
⚠️ 舊文提醒:本文發佈於約 4 年前,部分內容或指令可能已過時,請斟酌參考。

題目在此 20. Valid Parentheses

給定一個只有括號的字串,請判斷是否為合法結束的括號字串

解題思維

這題會用到 Stack 來處理這個問題

基本的思維是如果遇到左邊括號,那就放進 Stack
如果遇到右邊括號,那麼 Stack 裡面最新的元素應該要是相同類型的左邊括號

如果湊不起來,那就是不合法的括號字串

完成 🥰

程式碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution:
def isValid(self, s: str) -> bool:

stack = []

left = ['(', '{', '[']
right = [')', '}', ']']

for c in s:
if c in left:
stack.append(c)
elif c in right and stack:
if right.index(c) == left.index(stack[-1]):
stack.pop()
else:
return False
else:
return False

return not stack

也許你也會想看看

輸入關鍵字開始搜尋 · ↑↓ 選擇 · Enter 開啟