Leetcode日记 20. 有效的括号 给定一个只包括'(','{','}','[',']'的字符串 s ,判断字符串是否有效。
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入:s = “()”
输出:true
示例 2:
输入:s = “()[]{}”
输出:true
示例 3:
输入:s = “(]”
输出:false
提示:
1 <= s.length <= 104
s 仅由括号 ‘()[]{}’ 组成
- 经典的括号匹配问题,循环匹配这个字符串,并且使用字符串result作为标记
- 如果result为空,就把s的第一位给到result
- 如果result不为空,就判断result最后的括号与s首位是否匹配
- 如果匹配,就都减去
- 否则就把s的第一位给到result
- 最后根据result是否为空来判断字符串s是否匹配,为空则匹配。
result = ""
while s :
if len(result) == 0 :
result = s[0]
else :
if result[-1] == "(" and s[0] == ")" :
result = result[:-1]
elif result[-1] == "[" and s[0] == "]" :
result = result[:-1]
elif result[-1] == "{" and s[0] == "}" :
result = result[:-1]
else :
result = result + s[0]
s = s[1:]
if result :
return False
else :
return True