Caterpie_771 @ 2022-12-14 16:52:49
我刚开始学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,不妨参考一下这个案例,希望能帮到您
by Terrible @ 2022-12-14 17:05:53
@Caterpie_771 洛谷里一些数据行尾有\r
,需要清除掉。
by Terrible @ 2022-12-14 17:06:24
\r
的问题不是一个新颖的问题。
by Terrible @ 2022-12-14 17:08:04
如果你去翻翻之前的讨论发现有很多的是\r
的问题。
by huazai676 @ 2022-12-14 17:31:12
有没有一种可能,python的input函数返回值默认是字符串,所以直接int(input())强转类型就好了?
by PuJunXi_python @ 2022-12-14 18:58:27
strip()是python中字符串里的一个函数 作用是去掉字符串两边的指定字符 没有就默认去掉空格
by Caterpie_771 @ 2022-12-15 12:06:52
@Terrible 哦,好的,谢谢您
by 多半 @ 2023-05-31 18:17:40
感谢,也是遇到这个问题