棧,有效的括號(Python實現)

2021-10-06 06:17:06 字數 732 閱讀 3305

給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。

將字串從前向後(從後向前也可)依次取出,若取出的字元與棧頂元素可以組成有效的括號,則彈出棧頂元素,否則將該字元壓入棧頂。字元全部取出後若棧為空,則字串有效,反之無效。

class

solution

(object):

defisvalid

(self, s)

:"""

:type s: str

:rtype: bool

"""letters =

list

(s) bracketstack =

while letters:

bracket = letters.pop(

)# 從後向前取出字元

ifnot bracketstack:

# 棧為空時壓入棧

elif bracket + bracketstack[-1

]in['()',''

,'{}']:

# 與棧頂元素組成有效括號時,彈出棧

bracketstack.pop(

)else

:# 與棧頂元素組成有效括號時,壓入棧

if bracketstack:

return

false

else

:return

true

棧 有效括號

題目鏈結 題目分析 一道水題,利用棧就好了,當遇到 同理,當以上兩種情況都不滿足時,直接無效,後面的不用判斷 否則最後若棧空則有效,否則無效。class solution 配對成功出棧 else if s i top 1 st top top else if s i top 1 st top top...

有效的括號 棧

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

有效的括號 棧

有效的括號 leetcode 閱讀 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。讓我們看看使用棧作為該問題的中間資料結構的演算法。演算法初始化棧 s。一次處理表示式的每個括號。如果遇到開括號,我...