leetcode -- 20.有效的括号

给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

 1 class Solution(object):
 2     def isValid(self, s):
 3         """
 4         :type s: str
 5         :rtype: bool
 6         """
 7         dic = {')':'(', ']':'[', '}':'{'}
 8         stack = []
 9         for i in s:
10             if i in dic.values():#如果元素i为左括号,将其存入栈
11                 stack.append(i)
12             elif i in dic.keys():#如果是右括号
13                 if stack==[] or dic[i] != stack.pop():#右括号的情况,如果栈内此时无元素,说明顺序错误,如果该右括号对应的左括号与栈的最后一个元素不匹配,括号匹配错误
14                     return Faslse
15             else:
16                 return False
17         return stack == []#最终所有括号完全匹配时,栈是pop被取空的

猜你喜欢

转载自www.cnblogs.com/hengw/p/10430173.html
今日推荐