Python 字符串括号匹配算法 - 使用栈数据结构判断括号是否匹配
使用栈的数据结构来解决这个问题。遍历输入的字符串,当遇到左括号时,将其压入栈中,当遇到右括号时,判断栈顶的括号是否与当前右括号匹配。如果匹配,则将栈顶的括号出栈,继续遍历;如果不匹配或者栈为空,则括号不匹配。遍历完字符串后,如果栈为空,则括号匹配,否则括号不匹配。\n\n以下是一个示例的Python代码实现:\n\npython\ndef is_valid_brackets(s):\n stack = [] # 创建一个空栈\n brackets = {')': '(', ']': '[', '}': '{'} # 定义括号对应关系\n\n for char in s:\n if char in ['(', '[', '{']:\n stack.append(char) # 遇到左括号,将其压入栈中\n elif char in [')', ']', '}']:\n if not stack or brackets[char] != stack.pop():\n return False # 遇到右括号,如果栈为空或栈顶的括号与当前右括号不匹配,则括号不匹配\n\n return not stack # 遍历完字符串后,如果栈为空,则括号匹配;否则括号不匹配\n\n# 测试\ns = input("请输入一个包含有花括号{}、中括号[]、小括号()的字符串:")\nif is_valid_brackets(s):\n print("括号匹配")\nelse:\n print("括号不匹配")\n\n\n示例输入1:\n\n\n请输入一个包含有花括号{}、中括号[]、小括号()的字符串:{[()]}\n\n输出1:\n\n\n括号匹配\n\n\n示例输入2:\n\n\n请输入一个包含有花括号{}、中括号[]、小括号()的字符串:{[(])}\n\n输出2:\n\n\n括号不匹配\n
原文地址: https://www.cveoy.top/t/topic/pwA2 著作权归作者所有。请勿转载和采集!