Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0 Star 0 Fork 0

徐云天/leetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
_28.java 1015 Bytes
一键复制 编辑 原始数据 按行查看 历史
徐云天 提交于 2021-06-25 17:33 +08:00 . 增加28,36
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;
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/xuyuntian/leetcode.git
git@gitee.com:xuyuntian/leetcode.git
xuyuntian
leetcode
leetcode
master