找到字串中所有存在的括號對兒形式,把他們換位空字元,這樣操作下來,如果是有效的括號,那麼字串最後一定為空,不為空說明無效。
class solution(object):
def isvalid(self, s):
if not s:
return true
while
'{}'
in s or ''
in s or '()'
in s: #檢查是否有這樣的括號對兒
s = s.replace(
'{}',''
) s = s.replace(
'',''
) s = s.replace(
'()',''
)return s ==
''
借用乙個輔助棧,利用雜湊表對字串進行遍歷。
邊界條件 **
class solution:
def isvalid(self, s: str) -> bool:
if len(s) % 2 != 0:
return false
stack =
['?'
] d =
', '['
:']', '?'
:'?'
}for i in s:
if i in d: #遇到左括號,就把對應的右括號壓入棧
) else: #遇到右括號,就彈出,看是否相等
if stack.pop(
)!= i:
return false
return len(stack)
== 1
20 有效括號
1.題目描述 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。2.示例 輸入 輸出 true輸入 輸出 false3.思路 可以採用棧來解決,第一步 判斷棧是否空,為空則進乙個括號,若不為空,則判斷當前括號和棧頂元素是否匹配,不...
20 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...
20 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...