28.KMP算法--leetcode
前缀:是指不包含最后一个字符的所有以第一个字符开头的连续字串
后缀:是指不包含第一个字符的所有以最后一个字符结尾的连续字串
j的值就是最长公共前后缀的值!!!
所以在方法的最后next[i] = j
最后返回的是
if (j == needle.length()) { return i - needle.length() + 1; }
此时模式串和文本串是右侧对齐的
所以直接用
return i - needle.length() + 1;
前缀:是指不包含最后一个字符的所有以第一个字符开头的连续字串
后缀:是指不包含第一个字符的所有以最后一个字符结尾的连续字串
j的值就是最长公共前后缀的值!!!
所以在方法的最后next[i] = j
最后返回的是
if (j == needle.length()) { return i - needle.length() + 1; }
此时模式串和文本串是右侧对齐的
所以直接用
return i - needle.length() + 1;