vector<int> match(char a[], char b[], vector<int> nxt){
vector<int> ans;
int j = 0, la = strlen(a), lb = strlen(b);
for(int i = 0;i < la;i++){
while(j && b[j + 1] != a[i]) j = nxt[j];
if(b[j + 1] == a[i]) j++;
if(j == lb - 1){
ans.push_back(i - lb + 2);
j = nxt[j];
}
}
return ans;
}
匹配函数 目前已知肯定是这里出了问题 字符串读入从0开始 可过第一个Subtask
调了一个点了 我人傻了