-
Notifications
You must be signed in to change notification settings - Fork 0
KMP
厉黎强 edited this page Sep 17, 2022
·
4 revisions
先学前缀数组和后缀数组,再学kmp kmp
oiwiki解释的很清楚
int len = s.length();
int[] dp = new int[len];//前缀的长度
int max =0;
char[] str =s.toCharArray();
for(int i = 1 ; i < len ; i++ ){//i 是子串后缀的最后一个的下标
int j = dp[i-1];//j是字串前缀的下标
while(j>0&&str[j]!=str[i]) j = dp[j-1];
if(str[j]==str[i]) j++;
dp[i] = j;
}