Xi3414954826 @ 2024-02-28 14:56:36
求助python,找不到错误点,就20分
lst1 = []
lst2=[]
lst3=[]
a=0
b=0
while True:
try:
line = input()
if not line:
break
lst1.append(line)
except EOFError:
break
n=len(lst1)
lst3.append(n)
for i in lst1:
for j in range(len(i)):
lst2.append(i[j])
# print(lst2)
c=lst2.index('0')
for i in range(c,len(lst2)):
if lst2[i] == '0':
if b!=0:
lst3.append(b)
b=0
a+=1
elif lst2[i]=='1':
if a!=0:
lst3.append(a)
a=0
b+=1
if a != 0:
lst3.append(a)
elif b != 0:
lst3.append(b)
print(' '.join(map(str,lst3)))
by 杜都督 @ 2024-02-28 15:20:08
你错在这里了:
第一个数是N,其余各位表示交替表示0和1 的个数
从第二位开始,所有偶数位都固定地表示0的个数,所有奇数位都固定地表示1的个数
所以如果一上来就是1的话,说明刚开始就没有0,那么答案的第二位就应该是0,反观你的代码逻辑,最后的答案中是不可能存在0的,所以错了
by Terrible @ 2024-02-28 15:55:12
我认为题目不完整:不能不加讨论地认为 0 对应“有”的概念。题目表述绝对有问题。
框子里有 1 个红球和 0 个黄球是否可以说框子里既有红球,也有黄球?