题目
对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。
给定一个字符串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