1.有效的括號
給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: 「()」
輸出: true
示例 2:
輸入: 「(){}」
輸出: true
示例 3:
輸入: 「(]」
輸出: false
示例 4:
輸入: 「([)]」
輸出: false
示例 5:
輸入: 「」
輸出: true
思路:這個可以用堆疊的思想去解決,先設立乙個棧準備放東西,然後把括號組成乙個鍵值對,然後往棧裡面push值value,再判斷進來的是否是括號的右邊匹配部分,如果不是匹配的,就返回false,如果一開始就不在值裡面,就相當於一開始就不是左括號,那一定是錯誤的false
class
solution
:def
isvalid
(self, s)
:"""
:type s: str
:rtype: bool
"""stack =
dict="
:"for char in s:
if char in
dict
.values():
elif char in
dict
.keys():
if stack ==
ordict
[char]
!= stack.pop():
return
false
else
:return
false
return stack ==
判斷括號是否匹配
日期 2009.6.20 問題 設計乙個演算法,判斷乙個算術表示式中的括號是否配對。算術表示式儲存在帶頭結點的單迴圈鍊錶中,每個結點有兩個域 ch和 link 其中ch 域為字元型別。1 思路 根據括號的特點 進行匹配的時候,第乙個做括號最後乙個匹配,最後乙個左括號與第乙個右括號相匹配,恰好可以使用...
利用棧判斷括號是否匹配
輸入格式如下 3 輸出格式如下 yes no yes 演算法描述 利用棧來判斷 注意出棧時,考慮棧是否為空 最後匹配的結果應該是棧為空 1 從左到右進行掃瞄字元 2 若為左括號 else public boolean isbalanced string str elseelseelse end fo...
DS堆疊 括號匹配
問題 c ds堆疊 括號匹配 時間限制 1 sec 記憶體限制 128 mb 提交 396 解決 343 提交 狀態 討論版 題目描述 處理表示式過程中需要對括號匹配進行檢驗,括號匹配包括三種 和 和 例如表示式中包含括號如下 1234 5678 9101112 從上例可以看出第1和第2個括號匹配,...