题目:有效的括号
给定一个只包括
'('
,')'
,'{'
,'}'
,'['
,']'
的字符串s
,判断字符串是否有效。有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
示例
示例 1:
输入:s = "()"
输出:true
示例 2:
输入:s = "()[]{}"
输出:true
示例 3:
输入:s = "(]"
输出:false
示例 4:
输入:s = "([)]"
输出:false
示例 5:
输入:s = "{[]}"
输出:true
代码
class Solution:
def isValid(self, s: str) -> bool:
if len(s) %2 == 0:
while '()' in s or '[]' in s or '{}' in s:
s = s.replace('{}', '')
s = s.replace('[]', '')
s = s.replace('()', '')
return s == ''
else:
return False
思路
- 因为括号都是成对的,所以字符串长度应该为偶数,如果为奇数,那肯定不是有效的
- 把已经成对的括号替换空
- 当替换一轮后又会产生新的已经成对的括号
- 重复 步骤1 和步骤2 即可
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。