题目
20. 有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
- 示例 1:
输入: “()”
输出: true
- 示例 2:
输入: “()[]{}”
输出: true
- 示例 3:
输入: “(]”
输出: false
- 示例 4:
输入: “([)]”
输出: false
- 示例 5:
输入: “{[]}”
输出: true
解答
代码
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
t=['()','[]','{}']
while s:
if s.find(t[0])>=0:
s=s.replace(t[0],'')
elif s.find(t[1])>=0:
s=s.replace(t[1],'')
elif s.find(t[2])>=0:
s=s.replace(t[2],'')
else:
return False
return True
思路
- 当s不为空:
用find函数找成对的括号,找到一个后便将其删除。若找不到成对的括号了那便不满足要求,返回false - 当s为空:
返回true
虽然代码很短,但是显得智商很低。啊哈哈哈哈哈。。。 hhhhhh(:3_ヽ)_
自我感觉这个算法没有写的很好,看了别人的解题情况,发现自己就还是…挺懒的