用pycharm写一个程序并举实例1.完成一个括号匹配检测的函数,要求如下: □输入:一个包含(0的字符串 ■输出:如果括号能正确匹配,返回正确匹配信息;否则返回发生不匹配 的位置
时间: 2024-10-05 19:00:32 浏览: 28
当你使用PyCharm编写一个程序来检查括号匹配时,你可以创建一个名为`parentheses_matcher.py`的文件,并编写一个名为`check_brackets`的函数来完成这个任务。下面是一个简单的Python实现,使用栈数据结构来检查括号匹配:
```python
def check_brackets(input_string):
# 创建一个空栈
brackets_stack = []
bracket_pairs = {')': '(', '}': '{', ']': '['}
for i, char in enumerate(input_string):
if char in bracket_pairs.values(): # 如果遇到开括号,将其压入栈中
brackets_stack.append(char)
elif char in bracket_pairs.keys(): # 如果遇到闭括号
if not brackets_stack or brackets_stack.pop() != bracket_pairs[char]: # 检查栈顶是否匹配当前闭括号
return f"不匹配,位置{i}"
# 如果所有括号都已处理且栈为空,则表示匹配成功
if not brackets_stack:
return "正确匹配"
else:
return "不匹配,剩余未关闭的括号在位置{}".format(len(brackets_stack))
# 示例输入
input_str = "((()))"
print(check_brackets(input_str)) # 输出:正确匹配
input_str = "(])"
print(check_brackets(input_str)) # 输出:不匹配,位置2
```
在这个例子中,我们遍历输入字符串中的每个字符,如果遇到开括号就压入栈中,遇到闭括号则尝试从栈顶弹出与其配对的开括号。如果不匹配或者遍历完仍未清空栈,说明有不匹配的地方。
阅读全文