给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。 输入格式: 输入在一行中给出一行字符串,不超过100个字符,可能包括括号、数字、字母、标点符号、空格。 输出格式: 如果括号配对,输出yes,否则输出no。
时间: 2023-07-10 08:41:38 浏览: 71
用C语言检查输入括号是否匹配
5星 · 资源好评率100%
以下是Python实现的代码:
```python
def match_brackets(s):
stack = [] # 用栈来匹配括号
for c in s:
if c in '([{': # 如果是左括号,入栈
stack.append(c)
elif c in ')]}':
if not stack: # 如果栈为空,说明没有左括号与之匹配
return 'no'
elif c == ')' and stack[-1] == '(' or \
c == ']' and stack[-1] == '[' or \
c == '}' and stack[-1] == '{': # 如果栈顶元素和当前右括号匹配,弹出栈顶元素
stack.pop()
else: # 否则,括号不匹配
return 'no'
return 'yes' if not stack else 'no' # 最终栈为空,则说明所有括号都匹配
# 测试
s = input()
print(match_brackets(s))
```
程序的基本思路是:对于左括号,入栈;对于右括号,与栈顶元素匹配,如果匹配则弹出栈顶元素,否则括号不匹配。最终如果栈为空,则说明所有括号都匹配。
阅读全文