本文转载自【微信公众号:机器学习算法与Python精研,ID:AITop100】经微信公众号授权转载,如需转载与原文作者联系
题目:
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例
示例 1:
"()" true
示例 2:
"()[]{}" true
示例 3:
"(]" false
示例 4:
"([)]" false
示例 5:
"{[]}" true
思路1:
通过观察,我们在看大小括号时,应该是从最里面的一对括号进行抽取(删除),再不断往外层看,若有发现不成对的这该式子不成立。
对于成对的括号里面有不成对单括号,这一定是无效的括号。
所以,我们从前往后剔除正确的括号对,最后留下的就是无法配对的括号。
参考代码:
classSolution:defisValid(self, s):""" :type s: str :rtype: bool """ stack = [] d = ["()", "[]", "{}"]for i in range(, len(s)): stack.append(s[i])if len(stack) >= 2and stack[-2]+stack[-1] in d: stack.pop() stack.pop()return len(stack) ==
提交结果:
通过!