我尝试使用python写这道题,结果只AC了最后一个点(#1)。于是我下载了第一个点(#2)的数据:
CEBDAEEAACEBDAE
EBDAE
2
11
0 0 0 0 1
结果
On line 1 column 1, read 1, expected 2.
但是我在本地运行的答案是正确的:

同时我用c++也写了一遍,AC了
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()