给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。
时间: 2024-05-12 10:20:57 浏览: 43
基于字符串匹配的实体对齐任务数据集
5星 · 资源好评率100%
思路:
1. 新建一个空栈。
2. 遍历字符串中的每个字符。
3. 如果当前字符是左括号,则将其推入栈中。
4. 如果当前字符是右括号,则弹出栈顶元素,判断是否与当前右括号匹配。如果不匹配,返回False。
5. 遍历结束后,如果栈为空,则说明所有括号都匹配,返回True;否则说明存在未匹配的括号,返回False。
代码实现:
```python
def check_brackets(s):
stack = []
for c in s:
if c in '({[':
stack.append(c)
elif c in ')}]':
if not stack:
return False
top = stack.pop()
if c == ')' and top != '(':
return False
elif c == '}' and top != '{':
return False
elif c == ']' and top != '[':
return False
return not stack
s = input('请输入字符串:')
if check_brackets(s):
print('括号匹配')
else:
print('括号不匹配')
```
示例:
输入:(1+2)*{3-[4/2+(5-6)]}
输出:括号匹配
输入:(1+2)*{3-[4/2+(5-6)]}
输出:括号匹配
输入:(1+2)*{3-[4/2+(5-6)]}
输出:括号匹配
输入:(1+2)*{3-[4/2+(5-6)]
输出:括号不匹配
阅读全文