我刚开始学python,准备拿些入门题练手,结果在这题反复RE,十分郁闷。RE代码如下
n = input()
x0 = x1 = 0
N = len(n)
for i in range(N - 1):
n += input()
print(N,end = " ")
if n[0] == '1':
print(0, end = " ")
for i in n:
if i == '0':
if x1 > 0:
print(x1, end = " ")
x0 += 1
x1 = 0
else:
if x0 > 0:
print(x0, end = " ")
x1 += 1
x0 = 0
print(max(x0, x1))
我思考了一个多小时,以为是计算方法错了,非常难受。 然后我发现AC的同学的输入方式和我有点不一样,他们在input()之后添加了.strip() 我马上尝试,果然AC了
n = input().strip()
x0 = x1 = 0
N = len(n)
for i in range(N - 1):
n += input().strip()
print(N,end = " ")
if n[0] == '1':
print(0, end = " ")
for i in n:
if i == '0':
if x1 > 0:
print(x1, end = " ")
x0 += 1
x1 = 0
else:
if x0 > 0:
print(x0, end = " ")
x1 += 1
x0 = 0
print(max(x0, x1))
虽然我不知道这个strip是干嘛用的,但是没有它确实是导致了RE的出现。 如果您在用python做这题时的有多个RE,不妨参考一下这个案例,希望能帮到您