HDU 2594 数据结构之KMP

点击打开链接

题意:两个串,求第一个串开头,第二个串的匹配的最长长度

思路:将两个串合并,合并后的长度为len,求出KMP的next数组,next[len]代表的就是后面与前面的匹配程度,说白了就是匹配的位置,然后讨论处理一下

#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
const int inf=0x3f3f3f3f;
const int maxn=100010;
const int mod=10007;
char str1[maxn],str2[maxn];
int Next[maxn];
void makenext(int m){
    int i=0,j=-1;
    Next[i]=-1;
    while(i=len1||ans>=len2){
            if(len1

你可能感兴趣的:(数据结构,KMP)