class solution:
def isvalid(self, s):
a="} #包含括號的型別
b= #空列表
for i in s: #遍歷給定括號字串
if not b: #若列表b為空,將當前字元新增到列表b中
else: #若b不空
if b[-1]+i in a: #判斷前一字元和當前字元是否為完整括號
b.pop() #如果是,將前一字元移除b
else:
if not b:
return true #如果b最終為空,則返回true
else:
return false #否則,返回false
最終提交結果:
思考:本解題方法利用了資料結構中棧的概念,若棧為空,將當前符號新增到棧中,若有與棧頂相匹配的符號,出棧。
4 有效的括號
給定乙個只包括 的字串 s 判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。示例 1 輸入 s 輸出 true 示例 2 輸入 s 輸出 true 示例 3 輸入 s 輸出 false 示例 4 輸入 s 輸出 false 示例 5 輸入 s 輸出 t...
演算法 有效的括號
偽 1.得到字串.2.建立乙個linkedlist 用來模擬stack 2.非空判斷,空返回true 3.遍歷字串 如果第一次碰到三個括號 第乙個括號是右括號必定是錯誤的 如果碰到左括號,給linkedlist中新增對應的右括號,碰到右括號,判斷linkedlist末尾的右括號是否與其匹配,匹配則刪...
演算法 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。1 輸入 輸出 false 2 輸入 輸出 true 在最開始看到該題時是想將輸入的字串都先放入棧中,然後對棧進行操作 但是這種方法有點複雜。後邊實在...