python实现括号配对问题:假设一个算术表达式中包含圆括号、方括号、花括号3种类型的括号,编写一个算法来判别表达式中的括号是否配对

'''
假设一个算术表达式中包含圆括号、方括号、花括号3种类型的括号,编写一个算法来判别表达式中的括号是否配对
{a+[b*(c+d)]}
完成时间:2019/3/29
csdn作者:peipei12138
'''
str_4z = input('')
_list = [None]

for i in str_4z:
    # 判断当前遍历的字符是否满足括号栈里面最急切配对的括号
    if _list[-1] == '{' or _list[-1] == None:       
        if i in ['{','[','(']: _list.append(i)
        elif (i in [']',')']) or\
                (i == '}' and _list[-1] == None):
            _list.append(i)
            break
        elif i == '}' and _list[-1] == '{': del _list[-1]
        else: pass

    elif _list[-1] == '[':
        if i in ['[','(']: _list.append(i)
        elif i in ['{','}',')']:
            break
        elif i == ']': del _list[-1]
        else: pass

    elif _list[-1] == '(':
        if i == '(': _list.append(i)
        elif i in ['{','}','[',']']: 
            break
        elif i == ')': del _list[-1]
        else: pass

    else: pass
    
if _list == [None]:
    print(True)
else: print(False)

代码是模仿电脑内部对括号配对的思路来写的,创造了一个名为_list的栈来存放括号,将列表内的最后一个括号作为最急切配对的括号,然后来判断下一个字符

供和我一样的初学者参考

你可能感兴趣的:(Python,代码,Python,栈的应用,括号配对)