括号平衡代码悲惨运行时错误

时间:2018-04-19 08:27:41

标签: python python-3.x runtime-error

有人可以帮我调试代码吗?这是检查'括号余额'。输入是一个字符少于10k的字符串。

代码:

def is_matched(expression):
    opening = tuple('({[')
    closing = tuple(')}]')
    # can use mapping = dict(zip(opening, closing))
    mapping = {'(': ')', '{': '}', '[': ']'}
    queue = []

    for letter in expression:
        if letter in opening:
            queue.append(mapping[letter])
        elif letter in closing:
            if not queue or letter != queue.pop():
                return False
    return not queue

if __name__ == '__main__':
    string = input()
    if len(string) % 2 == 0: print (['No','Yes'][is_matched(string)])
    else: print ('No')

Problem Statement

有10个测试用例,我的代码通过了除测试用例3之外的所有测试用例,其中它严重地给出了运行时错误。我已经让它产生随机输入和自我运行'一个小时,但没有任何运行时错误代码。有些专家可以指出可能存在的问题吗?

非常感谢!

0 个答案:

没有答案