Python全都是RE

P1319 压缩技术

梁博文314 @ 2024-02-02 22:57:53

str1=input()
list1=str1.split(' ')
n=int(list1[0])
countn=-1
ans=''
if list1.count('')>0:
    list1.remove('')
for i in list1:
    if countn==-1:
        countn=countn+1
        continue
    if countn%2==0 and i!='':
        ans=ans+'0'*int(i)
    elif countn%2==1 and i!='':
        ans=ans+'1'*int(i)
    countn=countn+1
for i in range(n):
    print(ans[int(i*n):int((i+1)*n)])

为什么都是RE? 为什么在自己的IDLE上啥事没有,在洛谷上就RE? 为什么不能进行int(i)操作?(经过测试,保留别的语句而删掉int(i)就是WA,加上这个就是RE)


by cff_0102 @ 2024-02-02 23:02:14

@梁博文314 可能是有\r?


by 70CentsApple @ 2024-02-02 23:39:09

@梁博文314 试一试把读入(前两行)改成 list1 = map(int, input().strip().split()) 经过这样处理之后的每个元素都是整型,然后后面也不用判断(i!='');也不用转化成 int 了

如果还有问题,可以检查一下有没有潜在的数组越界问题


by 70CentsApple @ 2024-02-02 23:54:12

@70CentsApple 更正:list1 = list(map(int, input().strip().split()))

然后,我用你的代码风格改了一下可以 AC 了:

list1 = list(map(int, input().strip().split()))
n=int(list1[0])
countn=0
ans=''
for i in list1[1::] :
    if countn%2==0:
        ans=ans+'0'*i
    else:
        ans=ans+'1'*i
    countn=countn+1
for i in range(n):
    print(ans[int(i*n):int((i+1)*n)])

|