1.题目:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合
class Solution:
def isValid(self, s):
a={"()","[]","{}"} #包含括号的类型
b=[] #空列表
for i in s: #遍历给定括号字符串
if not b: #若列表b为空,将当前字符添加到列表b中
b.append(i)
else: #若b不空
if b[-1]+i in a: #判断前一字符和当前字符是否为完整括号
b.pop() #如果是,将前一字符移除b
else:
b.append(i) #如果不是,将当前字符添加到b中
if not b:
return True #如果b最终为空,则返回true
else:
return False #否则,返回false
最终提交结果:
思考:本解题方法利用了数据结构中栈的概念,若栈为空,将当前符号添加到栈中,若有与栈顶相匹配的符号,出栈。