要用Python来判断括号是否合规,可以使用栈的数据结构来实现。
下面是一个示例代码:
def is_valid_parentheses(s):
stack = []
mapping = {')':'(', ']':'[', '}':'{'}
for char in s:
if char in mapping:
top_element = stack.pop() if stack else '#'
if mapping[char] != top_element:
return False
else:
stack.append(char)
return not stack
# 测试代码
print(is_valid_parentheses("()")) # True
print(is_valid_parentheses("()[]{}")) # True
print(is_valid_parentheses("(]")) # False
print(is_valid_parentheses("([)]")) # False
print(is_valid_parentheses("{[]}")) # True
-
函数
is_valid_parantheses
接受一个字符串s
作为输入,用于判断其中的括号是否合规。 -
创建一个空栈
stack
,用于存储左括号。 -
创建一个字典
mapping
,用于存储右括号与其对应的左括号。 -
遍历字符串
s
中的每个字符char
。 -
如果
char
是右括号,就检查栈顶元素top_element
是否与char
对应的左括号相匹配。如果不匹配,则返回 False。 -
如果
char
是左括号,将其压入栈中。 -
当遍历完所有字符后,检查栈是否为空。如果栈为空,说明所有括号都是合规的,返回 True;否则,返回 False。
-
最后调用
print(is_valid_parantheses("()[{]"))
进行测试。
这段代码使用了一个栈来存储左括号,每次遇到右括号时,都会将栈顶的左括号弹出并判断是否匹配。如果最后栈为空,则说明所有的括号都是合规的,返回True;否则,返回False。
你可以传入不同的括号字符串进行测试,看看结果是否符合预期。