AB3 有效括号序列
思路:
step1:创建字典,使得各个括号一一对应;创建一个空栈stack;创建一个flag;
step2:遍历s,如果i是“([{” ,则添加到stack中;如果i是“)}]”,如果stack不是空,并且stack最后一个元素对应的括号等于i,则删除stack中的i;否则flag = False;
step3:如果flag为True并且stack为空,返回True;否则返回False;
代码如下:
class Solution:
def isValid(self , s: str) -> bool:
d = {'(':')','[':']','{':'}'}
stack = []
flag = True
for i in s:
if i in '{[(':
stack.append(i)
if i in ')]}':
if stack != [] and d[stack[-1]] == i:
stack.pop()
else:
flag = False
if flag == True and stack == []:
return True
return False