题目描述:
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
代码:
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
stack = []
mapping = {')':'(', '}':'{', ']':'['}
for p in s:
if p in mapping.values():
stack.append(p)
elif p in mapping.keys():
if not stack or mapping[p] != stack.pop():
return False
else:
return False
return not stack
思路分析:
括号匹配问题要用栈来帮助解决。在代码中首先要自定义一个 mapping
,用来表示括号的对应规则。
网友评论