给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
(1)左括号必须用相同类型的右括号闭合。
(2)左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: “()”
输出: true
示例 2:
输入: “()[]{}”
输出: true
示例 3:
输入: “(]”
输出: false
示例 4:
输入: “([)]”
输出: false
示例 5:
输入: “{[]}”
输出: true
别人的解答:
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
# 判断是否是奇数或空字符
if len(s)<2 or len(s)%2!=0:
if s == '':
return True
else:
return False
count = 0
length = len(s)
# 将其中的(){}[] 都换掉,然后判断是否有剩余
while(count < length/2):
s = s.replace("{}","").replace("[]","").replace("()","")
count += 1
if len(s) > 0:
return False
else:
return True
思路真的好重要啊(做了两个小时,最终还是参考的大佬的,伤心o(╥﹏╥)o)