有效括号题目解答

  • 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
  • 有效字符串需满足:
  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  • 注意空字符串可被认为是有效字符串。
  • 有效括号题目解答_数据类型

  • 解题思路:
  1. 左右括号必须相等,那么先记录不同左括号出现的次数,生成对应的右括号,压栈。先进后出。适合数据类型列表。
  2. 如果一开始就出现右括号,那么一定失败,可以提前退出。
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
arr = []
dt = {"(":")","[":"]","{":"}"}
for k,i in enumerate(s):
if len(s)-k<len(arr):
return False
if i in dt:
arr.append(dt[i])
elif len(arr)>=1 and i == arr[-1]:
arr.pop()
else:
return False
return False if len(arr) else True