您的位置:首页 > 健康 > 美食 > 力扣 20. 有效的括号

力扣 20. 有效的括号

2024/12/27 2:34:14 来源:https://blog.csdn.net/akdjfhx/article/details/139394292  浏览:    关键词:力扣 20. 有效的括号

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。

  2. 左括号必须以正确的顺序闭合。

  3. 每个右括号都有一个对应的相同类型的左括号。

示例 1:输入:s = "()" 输出:true

示例 2:输入:s = "()[]{}" 输出:true

示例 3:输入:s = "(]" 输出:false

class Solution:def isValid(self, s: str) -> bool:dic={'{':'}','[':']','(':')'}stack=[]for char in s:if char in dic: stack.append(char)
#栈中应该一直有一个或多个(,[,{。如果没有stack.pop()会报空数据错误,因此这里增加判断直接返回Falseelif len(stack)==0:return False
#括号不匹配返回Falseelif dic[stack.pop()]!=char:return Falseif len(stack)!=0: #栈中还有元素返回Falsereturn Falsereturn True
class Solution:def isValid(self, s: str) -> bool:dic = {'{': '}',  '[': ']', '(': ')', '?': '?'} #dic有可能会查询到stack中的'?'stack = ['?'] #不会因为stack.pop()为空报错for c in s:if c in dic: stack.append(c)elif dic[stack.pop()] != c: return False return len(stack) == 1  #stack中只剩'?'

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com