代码拉取完成,页面将自动刷新
public class _28 {
static class Solution {
public int strStr(String haystack, String needle) {
if (needle.length() == 0) return 0;
return kmp(haystack.toCharArray(), needle.toCharArray());
}
public int kmp(char[] m, char[] p) {
//构建table
int k = 0;
int[] table = new int[p.length];
for (int i = 1; i < p.length; i++) {
while (k > 0 && p[k] != p[i]) {
k = table[k - 1];
}
if (p[k] == p[i]) {
k++;
}
table[i] = k;
}
int x = 0;
for (int i = 0; i < m.length; i++) {
while (x > 0 && p[x] != m[i]) {
x = table[x - 1];
}
if (p[x] == m[i]) x++;
if (x == p.length) {
return i - x + 1;
}
}
return -1;
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。