题目大意:判断给定的字符串是否有效,即左右括号必须按序匹配。
题目分析:本题可以用栈来实现,每次遇到'(' 或 '[' 或 '{',就将其入栈; 遇到其他情况,就弹出栈顶的元素,并分析栈顶元素和当前元素是否可以匹配,若可以匹配,就继续循环,否则就输出无效。当循环结束时,若栈中还有元素,表明有多余的括号,输出无效。
代码展示:
class Solution:
def isValid(self, s):
if s=='':
return True
else:
signal = []
for x in s:
if x == '(' or x == '[' or x == '{':
signal.append(x)
else:
if len(signal)==0:
return False
else:
y = signal.pop()
if (y=='('and x==')') or (y=='['and x==']') or (y=='{'and x=='}'):
continue
else:
return False
if signal:
return False
else:
return True