用python解该题需要注意的一件事
查看原帖
用python解该题需要注意的一件事
838232
Caterpie_771楼主2022/12/14 16:52

我刚开始学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,不妨参考一下这个案例,希望能帮到您

2022/12/14 16:52
加载中...