Leetcode刷題 有效的括號

2021-10-05 05:40:23 字數 872 閱讀 6509

思路:

先把符號輸入字典,每對符號的左半邊設定為位置,右半邊設定為值,方便後續進行比對。

利用出入棧的思想,設定棧stack,將字串中的值cpush入棧直至c不在字典裡。然後再將棧裡的值pop出來與c對比,注意此時pop出來的值是字典的位置索引dic[stack.pop()],所對應的值應該是符號的右半邊。如果此時dic[stack.pop()]c不相等,則說明不是一對,返回false

解法:

def

isvalid

( s:

str)

->

bool

: dic =',

'[':

']',

'(':

')',

'?':

'?'}

stack =

['?'

]#棧為空時stack.pop()會報錯,這裡賦乙個初值防止報錯。

for c in s:

elif dic[stack.pop()]

!= c:

return

false

return

len(stack)==1

print

(isvalid(

"([)]"

))

leetcode刷題(30) 20 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5 輸入 輸...

Leetcode刷題之 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5 輸入 輸...

leetcode刷題第6題 有效的括號

題目 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 1.左括號必須用相同型別的右括號閉合。2.左括號必須以正確的順序閉合。注意 空字串可被認為是有效字串。思路 我的初步想法是用棧。考察知識點 c 棧的使用 具體見 class solution return false for int i...