第18讲作业:输入符号看对不对的那个,求解
本帖最后由 dukai 于 2023-1-20 14:18 编辑a = input("typing ")
stack = []
c = 1
for b in a:
if b == '[' or b == '{'or b == '(':
stack.append(b)
else:
if b == ']' or b == '}' or b == ')':
if b == ']':
c = '['
elif b == '}':
c = '{'
elif b == ')':
c = '('
if c == stack[-1]:#我想先让c和stack的最后一个比较,如果比较成功了就剔除stack最后一个符号
stack.pop(stack[-1])
else:
print("error")
break
if len(stack) == 0:
print("ok")
#想了很久也没明白哪里错了,求大神解答,希望各位大神手下留情,尽量在我的代码上改一下,如果我整个思路是错的就当我没说 list.pop 是您的代码中这样用的吗?
https://docs.python.org/3/tutorial/datastructures.html#more-on-lists 。。。 本帖最后由 jackz007 于 2023-1-20 17:27 编辑
if b == '[' or b == '{'or b == '(': # '(' 是中文字(全角)符
这是我改写的代码,楼主可以参考一下。
stack , d = [] , {'}' : '{' , ']' : '[' , ')' : '('}
f = False
a = input("typing ")
for b in a:
if b in '{[(':
stack . append(b)
else:
if stack . pop() != d:
break
else :
if not stack : f = True
print('ok') if f else print('error')
页:
[1]