题目:
链接:点击打开链接
题意:
找出两个字符串的后缀和前缀公共串,输出最短的串,并且为最小字典序。
算法:
KMP算法。
思路:
取最小字典序输出。。。
代码:
#include#include #include using namespace std; #define MAXN 100010 char s1[MAXN],s2[MAXN]; int next[MAXN]; void get_nextval(char s[])//求next数组 { int i,j; i = -1; j = 0; next[0] = -1; int len = strlen(s); while(j 0) printf("%s%s\n",s2,s1+a); else printf("%s%s\n",s1,s2+a); } else if(a>b) { printf("%s%s\n",s1,s2+a); } else printf("%s%s\n",s2,s1+b); } return 0; }