LeetCode 28 StrStr 解法为KMP&&Rolling hash
2016-06-08 00:00
507 查看
Implement strStr()
Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
Update (2014-11-02):
The signature of the function had been updated to return the index instead of the pointer. If you still see your function signature returns a
解题思路:使用了暴力法,时间复杂度较高,O(n*m),思路很简单,一个个遍历匹配,这个题的最优解即是大名鼎鼎的KMP算法,这个算法每次都忘了。
代码如下:
当然除了KMP之外也有其他的线性算法,比如Rolling hash。
见博客:
http://blog.csdn.net/linhuanmars/article/details/20276833
Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
Update (2014-11-02):
The signature of the function had been updated to return the index instead of the pointer. If you still see your function signature returns a
char *or
String, please click the reload button to reset your code definition.
解题思路:使用了暴力法,时间复杂度较高,O(n*m),思路很简单,一个个遍历匹配,这个题的最优解即是大名鼎鼎的KMP算法,这个算法每次都忘了。
代码如下:
public int strStr(String haystack, String needle) { int al = haystack.length(); int bl = needle.length(); if(bl==0){ return 0; } if(al<bl){ return -1; } int i=0; while(i < al) { int j=0; int t = i; while(j!=bl){ if(needle.charAt(j)==haystack.charAt(t)){ j++; t++; if(t>=al){ break; } }else{ break; } } if(j==bl){ return i; } i++; } return -1; }
当然除了KMP之外也有其他的线性算法,比如Rolling hash。
见博客:
http://blog.csdn.net/linhuanmars/article/details/20276833
相关文章推荐
- LeetCode 35 Search Insert Position 二分法处理
- 学知识的时候,把自己放得低一点
- LeetCode Gas Station
- 函数指针的正确理解 from C++ Primer Plus P242
- Linux下CPU获取指定时间的用户态、系统态以及空闲态的时间
- LeetCode 39 && 40 Combination Sum I && II 关键在于剪枝,剪枝讨论在末尾
- php调用R的脚本实现方案
- Leetcode 55 Jump Game && 45 Jump Game II
- LeetCode 26 Remove Duplicates from Sorted Array
- LeetCode Repeated DNA Sequences的一点疑惑
- Max Sum Plus Plus----DP
- How does memmove differ from memcpy
- LeetCode 8 String to Integer (atoi)
- LeetCode 2 Add Two Numbers
- LeetCode 16 3Sum Closest
- BuildYourOwnLisp Why we need enum
- LeetCode 14 Longest Common Prefix 0ms实现的算法
- Fighting
- LeetCode 21 Merge Two Sorted Lists
- Win8+CentOS7 双系统安装恢复win8引导