HDU 2594 (简单KMP) Simpsons’ Hidden Talents
2014-11-26 18:12
363 查看
题意:
有两个字符串,找一个最长子串是的该串既是第一个字的前缀,又是第二个串的后缀。
分析:
把两个串并起来然后在中间加一个无关字符,求next数组即可。
代码君
有两个字符串,找一个最长子串是的该串既是第一个字的前缀,又是第二个串的后缀。
分析:
把两个串并起来然后在中间加一个无关字符,求next数组即可。
#include <cstdio> #include <cstring> const int maxn = 50000 + 10; char s1[maxn * 2], s2[maxn]; int next[maxn * 2], l; void get_next() { int k = -1, j = 0; next[0] = -1; while(j < l) { if(k == -1 || s1[k] == s1[j]) { k++; j++; next[j] = k; } else k = next[k]; } } int main(void) { //freopen("2594in.txt", "r", stdin); while(scanf("%s%s", s1, s2) == 2) { l = strlen(s1); int l2 = strlen(s2); s1[l] = '#'; s1[l + 1] = '\0'; strcat(s1, s2); l = l + l2 + 1; get_next(); if(next[l] == 0) { puts("0"); continue; } s1[next[l]] = '\0'; printf("%s %d\n", s1, next[l]); } return 0; }
代码君
相关文章推荐
- HDU 2594 Simpsons’ Hidden Talents(简单KMP)
- hdu 2594 Simpsons’ Hidden Talents(KMP)
- [KMP-next数组特性]HDU 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents(kmp模板)
- [HDU 2594]Simpsons’ Hidden Talents[kmp求公共前后缀]
- HDU 2594 Simpsons’ Hidden Talents (KMP)
- hdu 2594 Simpsons’ Hidden Talents 【KMP】
- HDU 2594 Simpsons’ Hidden Talents (KMP)
- 【KMP】 HDU 2594 Simpsons’ Hidden Talents
- hdu 2594 Simpsons’ Hidden Talents(KMP)
- HDU 2594 Simpsons’ Hidden Talents(字符串-KMP)
- HDU 2594 Simpsons’ Hidden Talents(KMP)
- hdu 2594 Simpsons’ Hidden Talents(数据结构:KMP)
- hdu 1867(A + B for you again) KMP的应用 /hdu 2594(Simpsons’ Hidden Talents) KMP
- hdu 2594 Simpsons’ Hidden Talents(KMP)
- HDU 2594 Simpsons’ Hidden Talents (字符串-KMP)
- HDU 2594 Simpsons’ Hidden Talents (KMP)
- 【KMP】hdu 1867 A + B for you again(外:hdu 2594 Simpsons’ Hidden Talents)
- HDU 2594Simpsons’ Hidden Talents(KMP运用)
- HDU 2594--Simpsons’ Hidden Talents【KMP】