首页 > 代码库 > HUST - 1010
HUST - 1010
HUST - 1010
类比POJ 2406
自己的什么话都没有的传送门
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 using namespace std; 5 typedef long long LL; 6 7 const int maxn = 1e6 + 10; 8 int next[maxn]; 9 10 void kmp(char *pattern) { 11 //int n = pattern.size(); 12 int n = strlen(pattern); 13 for (int i = 1; i < n; i++) { 14 int j = i; 15 while (j > 0) { 16 j = next[j]; 17 if (pattern[j] == pattern[i]) { 18 next[i + 1] = j + 1; 19 break; 20 } 21 } 22 } 23 } 24 25 26 int main() { 27 char s[maxn]; 28 while (~scanf("%s", s)) { 29 memset(next, 0, sizeof(next)); 30 kmp(s); 31 int len = strlen(s); 32 printf("%d\n", len - next[len]); 33 } 34 return 0; 35 }
HUST - 1010
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。