括号匹配是计算机科学中常见的问题,它涉及到在一串括号中判断是否存在匹配的括号对。在这篇文章中,我将使用Python编程语言来实现括号匹配算法,并通过使用栈数据结构来解决这个问题。
算法思路:
- 创建一个空栈,用于存储左括号。
- 遍历输入的字符串,对于每个字符:
- 如果是左括号(‘(’,‘[’,‘{’),将其推入栈中。
- 如果是右括号(‘)’,‘]’,‘}’),检查栈是否为空。
- 如果栈为空,则表示右括号没有匹配的左括号,返回False。
- 如果栈不为空,弹出栈顶元素并检查是否与当前右括号匹配。
- 如果匹配,则继续处理下一个字符。
- 如果不匹配,则返回False。
- 遍历完整个字符串后,检查栈是否为空。
- 如果栈为空,则表示所有左括号都有匹配的右括号,返回True。
- 如果栈不为空,则表示存在未匹配的左括号,返回False。
下面是使用Python实现的括号匹配算法的源代码: