有效的括号
Posted tsdblogs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有效的括号相关的知识,希望对你有一定的参考价值。
给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。
括号必须以正确的顺序关闭,”()” 和 “()[]{}” 是有效的但是 “(]” 和 “([)]” 不是。
思路:
利用一个列表模拟堆栈进行匹配,遍历字符串,遇见左括号就进行入栈操作,遇见一次右括号就进行一次出栈,并进行一次比较。例如栈内的符号是:({,下一个遍历的字符是},见到右括号则进行一次出栈操作,进行一次比较,比较的是{和}两个符号,是匹配的,则接着遍历下一个位置。利用字典的键值对特性进行比较
代码如下:
class Solution: def isValid(self, s): if len(s) % 2 == 1:#偶数个符号才是一定匹配的 return False d = {‘{‘: ‘}‘, ‘[‘: ‘]‘, ‘(‘: ‘)‘} stack = [] for i in s: # in stack if i in d: stack.append(i) else: if not stack or d[stack.pop()] != i: return False return stack ==[]
以上是关于有效的括号的主要内容,如果未能解决你的问题,请参考以下文章
需要一种有效的方法来避免使用 Laravel 5 重复代码片段