Python:实现括号匹配算法
括号匹配算法是编程中经常用到的一种算法,它能够帮助我们判断一个表达式中的括号是否匹配。当括号匹配时,表达式才是有效的,否则将会出现语法错误。下面,我们将介绍如何使用Python实现括号匹配算法。
算法思路:
- 定义一个空栈。
- 遍历待匹配的字符串,如果遇到左括号,则将其入栈;如果遇到右括号,则将栈顶的元素出栈并进行匹配。
- 如果栈为空且当前字符是右括号,则说明该表达式不合法,返回False。
- 遍历完字符串后,如果栈为空,则说明表达式合法,返回True;否则说明表达式不合法,返回False。
代码实现:
def is_valid(s: str) -> bool:
stack = []
map = {")": "(", "}": "{", "]": "["}
for char in s:
if char in map:
top = stack.pop() if stack else '#'
if map[char] != top:
return False