python玄学全WA
查看原帖
python玄学全WA
188769
Vanilla_chan楼主2024/10/18 18:30

我尝试使用python写这道题,结果只AC了最后一个点(#1)。于是我下载了第一个点(#2)的数据:

CEBDAEEAACEBDAE
EBDAE
2
11
0 0 0 0 1

结果

On line 1 column 1, read 1, expected 2.

但是我在本地运行的答案是正确的:

同时我用c++也写了一遍,AC

python代码

text=input()
pattern=input()
nxt=[0]*len(pattern)

i=1
j=0
while i<len(pattern):
    if pattern[i]==pattern[j]:
        nxt[i]=j+1
        i+=1
        j+=1
    else:
        if j==0:
            nxt[i]=0
            i+=1
        else:
            j=nxt[j-1]
# print(nxt)

i=0
j=0
succ=[]
ans=[0]*len(text)
while i<len(text):
    if text[i]==pattern[j]:
        ans[i]=j
        i+=1
        j+=1
        if j==len(pattern):
            succ.append(i-j+1)
            j=nxt[j-1]
    else:
        if j==0:
            i+=1
        else:
            j=nxt[j-1]
# print(ans)
# print(succ)

for x in succ:
    print(x)
for x in nxt:
    print(x,end=' ')
print()
2024/10/18 18:30
加载中...