Leetcode刷题Python20. 有效的括号
Posted Better Bench
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题Python20. 有效的括号相关的知识,希望对你有一定的参考价值。
1 题目
给定一个只包括 ‘(’,‘)’,‘’,‘’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
2 解析
利用栈来实现,遇到左括号进栈,遇到右括号,就弹出栈顶,并对比括号类型是否相同。如果相同就继续遍历,直到遍历完,栈为空则返回True。如果不同,返回False。
注意:由于栈为空,有边界条件为报错,所以栈里存放一个无用字符,防止边界条件。则最后的边界条件是栈的长度为1。
3 python 实现
class Solution:
def isValid(self, s: str) -> bool:
d = '(':')','':'','[':']','-':'-'
stack = ['-']
for c in s:
if c in d.keys():
stack.append(c)
elif d[stack.pop()]!=c:
return False
return len(stack)==1
创作打卡挑战赛
赢取流量/现金/CSDN周边激励大奖
以上是关于Leetcode刷题Python20. 有效的括号的主要内容,如果未能解决你的问题,请参考以下文章
[JavaScript 刷题] 栈 - 有效的括号, leetcode 20