leetcode 28. Implement strStr()
来源:互联网 发布:flicker free mac 编辑:程序博客网 时间:2024/05/29 12:32
题目
Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
思路
实现kmp算法
代码实现
class Solution { public int strStr(String haystack, String needle) { //检查输入参数 if(haystack==null){ return -1; } if(needle == null||needle.length()==0){ return 0; } int [] next=getNext(needle); int i=0; int j=0; int slen=haystack.length(); int plen=needle.length(); while(i<slen && j< plen){ if(j==-1|| haystack.charAt(i)==needle.charAt(j)){ ++i; ++j; }else { j=next[j]; } } if(j == plen){ return i-j; }else { return -1; } } int [] getNext(String needle){ int len=needle.length(); int[] next=new int[len]; next[0]=-1; int i=-1; int j=0; while(j<len-1){ //p[i]表示前缀,p[j]表示后缀 //next数组存储的后缀中相应位置对应的前缀next[0] 已经有了对应的值.因此从i=0,j=1开始.next[1]=0 if(i==-1||needle.charAt(i) == needle.charAt(j)){ ++i; ++j; next[j]=i; }else { i=next[i]; } } return next; } }
阅读全文
0 0
- [LeetCode]28.Implement strStr()
- LeetCode --- 28. Implement strStr()
- LeetCode 28.Implement strStr()
- [Leetcode] 28. Implement strStr()
- 【leetcode】28. Implement strStr()
- [leetcode] 28.Implement strStr()
- Leetcode-28.Implement strStr()
- 28. Implement strStr() LeetCode
- leetcode 28. Implement strStr()
- [LeetCode]28. Implement strStr()
- leetcode 28. Implement strStr()
- Leetcode 28. Implement strStr()
- leetcode 28.Implement strStr()
- LeetCode *** 28. Implement strStr()
- LeetCode 28. Implement strStr()
- leetcode-28. Implement strStr()
- leetcode 28. Implement strStr()
- leetcode 28. Implement strStr()
- java_继承中的构造方法
- 霍夫变换的原理 及 一种参数迭代的自适应寻找最佳霍夫直线的代码(在条码识别中的应用)
- python生成验证码
- zookeeper安装教程(伪分布式和分布式)
- 好玩的CMD命令行
- leetcode 28. Implement strStr()
- 2184: 不是防AK题
- 内存管理--程序的装载
- 前端<ul>分页实现
- SQLi-Labs 练习总结 Page-1 Less-1
- keepavlived的搭建与问题
- Graph Cut(图割)详解
- java虚拟机
- wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)