题面

啦啦啦,仍然是kmp

 1 #include<algorithm>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<cstdio>
 5 #include<cmath>
 6 #include<queue>
 7 using namespace std;
 8 char s[400001];
 9 int len,next[400001],sum[400001];
10 void get_next(int len){
11     int i=0,j=-1;
12     next[0]=-1;
13     while(i<len){
14         if((j==-1)||(s[i]==s[j])){
15             i++;
16             j++;
17             next[i]=j;
18         }
19         else{
20             j=next[j];
21         }
22     }
23 }
24 int main(){
25     while(scanf("%s",s)!=EOF){
26         int k=0;
27         len=strlen(s);
28         get_next(len);
29         for(int i=len;i!=0;){
30             sum[k++]=next[i];
31             i=next[i];
32         }
33         for(int i=k-2;i>=0;i--){
34             printf("%d ",sum[i]);
35         }
36         printf("%d\n",len);
37     }
38     return 0;
39 }

 

转载于:https://www.cnblogs.com/ainiyuling/p/11136942.html

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐