LeetCode: Implement strStr()
来源:互联网 发布:淘宝店铺所在地修改 编辑:程序博客网 时间:2024/06/05 20:27
思路:KMP经典算法,具体解释可以参照July的关于KMP的博文。
code:
class Solution {public: void GetNext(char * needle, vector<int> &next){ int n = strlen(needle); next[0] = -1; int k = -1; int j = 0; while(j < n-1){ if(k == -1 || needle[j] == needle[k]){ k++; j++; if(needle[j] != needle[k]) next[j] = k; else next[j] = next[k]; } else k = next[k]; } } char *strStr(char *haystack, char *needle) { int n = strlen(haystack), m = strlen(needle); if(n==0){ if(m == 0) return haystack; return NULL; } if(m == 0) return haystack; vector<int> next(m,0); GetNext(needle,next); int i = 0, j =0; while(i < n && j < m){ char *p = haystack + i, *q = needle + j; if(j == -1 || *p == *q){ i++; j++; } else j = next[j]; } if(j >= m) return haystack+i-j; else return NULL; }};
0 0
- LeetCode: Implement strStr()
- [Leetcode] Implement strstr()
- Leetcode: Implement strStr
- [Leetcode] Implement strStr()
- LeetCode Implement strStr()
- 【leetcode】Implement strStr()
- [LeetCode]Implement strStr()
- [LeetCode] Implement strStr()
- [LeetCode] Implement strStr()
- LeetCode-Implement strStr()
- LeetCode: Implement strStr()
- LeetCode - Implement strStr()
- LeetCode: Implement strStr()
- 【leetcode】Implement strStr()
- Leetcode: Implement strStr()
- leetcode implement strStr
- LeetCode Implement strStr()
- LeetCode题解:Implement strStr()
- LeetCode Longest Substring Without Repeating Characters
- 【Java】【jquery】ajax乱码问题
- UIViewController与UIWebView通过JavaScript进行交互
- android通过反射获取内置外置存储器列表
- Linux下执行一些命令前加sudo时出现command not found的原因
- LeetCode: Implement strStr()
- 仿射变换
- 【转】数据类型长度
- springmvc+springjpa+hibernate整合简例
- 在VS2010中删除代码中的空行?
- 【GO初试】端口扫描器
- linux下svn常用指令
- CoreGraphics
- 进程通信linux