Checkio Brackets

#checkio#检查括号是否闭合

在代码中括号闭合十分重要,同时还要一一对应的闭合

因此我们要编写一个代码,来实现这个过程。

输入:具有不同类型的表达式,括号为字符串。

输出:对表达式作为逻辑值的正确性的判断。

example:

        assert checkio("((5+3)*2+1)") == True

        assert checkio("{[(3+1)+2]+}") == True

        assert checkio("(3+{1-1)}") == False

        assert checkio("[1+1]+(2*2)-{3/3}") == True

前提 条件:

  • 只有括号(“{}”、“()”或“[]”)、数字或运算符(“+”、“-”、“*”、“/”);
  • 0 < len(表达式) < 103.
def checkio(expression: str) -> bool:
"""
   创建一个brackets对应字典,检索给出的例子,如果是左半部分,加入对应的右半部分括号到new列表里面,直到从给定对象中开始取出右半部分的括号时,如果是一组组对应的情况,是刚好相等的。
比如:假定对左部分的括号检索到"{",则加入"}",然后如果闭合的话,继续检索到的应该是"}"。

"""

    brackets = {'(': ')', '[': ']', '{': '}'}
    new = ['']
    for i in expression:
        if i in brackets:
            new.append(brackets[i])
        elif i in brackets.values() and i != new.pop():
            return False
    return new == ['']

变得很棒

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值