题目
对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。
给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。
测试样例:
“(()())”,6
返回:true
测试样例:
“()a()()”,7
返回:false
思路
先构建一个列表,碰到‘(’,加入列表,碰到‘)’,则弹出列表的最后一个,当遍历梅结束时,列表为空,则返回False。遍历结束判断列表是否为空即可。
代码
class Parenthesis:
def chkParenthesis(self, A, n):
stack = []
for i in range(n):
if A[i]=='(':
stack.append(A[i])
elif A[i] == ')':
if len(stack) == 0:
return False
stack.pop()
else:
return False
if len(stack)==0:
return True
else:
return False