leetcode 20

骚气冲天的代码:

python

 

 原题:

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

有效字符串需满足:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 1 class Solution:
 2     def isValid(self, s: str) -> bool:
 3         dic = {'(':')','[':']','{':'}','?':'?'} #其中的 '?':'?' 是为了pop出了'?'时,dic[stack.pop()]不报错
 4  #放入一个问号就是为了在没有压栈动作时或者所有压栈已经被出栈对应完后,pop不为空,要不会出现stack.pop()超过边界. 
 5         stack=['?']  
 6         for c in s:
 7             if c in dic:
 8                 stack.append(c)
 9             elif dic[stack.pop()]!=c :return False
10         return len(stack)==1

 

posted @ 2021-07-23 17:48  沈晓桐  阅读(96)  评论(0编辑  收藏  举报