有人可以帮我调试代码吗?这是检查'括号余额'。输入是一个字符少于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')
有10个测试用例,我的代码通过了除测试用例3之外的所有测试用例,其中它严重地给出了运行时错误。我已经让它产生随机输入和自我运行'一个小时,但没有任何运行时错误代码。有些专家可以指出可能存在的问题吗?
非常感谢!