📅  最后修改于: 2023-12-03 14:55:46.468000             🧑  作者: Mango
在编写程序时,我们常常需要检查括号深度是否正确。比如在编写算术表达式求值、JSON解析等程序中,括号深度的正确性就是非常重要的。本文将介绍如何检查括号深度在给定的字符串中是否正确。
我们可以使用栈来检查括号深度的正确性。当遇到左括号时,将其入栈;当遇到右括号时,将栈顶的左括号出栈。最后检查栈是否为空,若为空,则说明括号深度正确;否则,说明存在不匹配的右括号。
具体步骤如下:
代码实现如下:
def is_valid_parentheses(s: str) -> bool:
stack = []
mapping = {
')': '(',
'}': '{',
']': '[',
}
for char in s:
if char in mapping:
if not stack or stack[-1] != mapping[char]:
return False
stack.pop()
else:
stack.append(char)
return not stack
这段代码使用了一个映射表 mapping
,用于用右括号查找对应的左括号。当读到左括号时,直接入栈;当读到右括号时,检查栈顶元素是否是对应的左括号,如果是,则弹出栈顶元素;否则,说明括号深度不正确。最后,如果栈为空,则说明括号深度正确;否则说明存在不匹配的右括号。
本文介绍了如何使用栈检查括号深度在给定的字符串中是否正确。这是一种简单、易懂的算法,适用于很多场景。在实际编程中,我们可以根据具体需求对其进行修改和优化,以便更好地满足业务需求。