LeetCode 028. Implement strStr()
来源:互联网 发布:0信誉淘宝店铺平台 编辑:程序博客网 时间:2024/06/10 02:28
Implement strStr()
Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
这道题实现是为了实现strStr()功能,但是更新后该函数返回值不再要求是char*,而是int,也即需要返回查找到的字符串的下标。
说白了,这道题其实就是为了实现字符串匹配功能,为了追求速度,使用修正后的KMP算法。
class Solution {public:void get_next(int * next, char * T){int i=0, j=-1;next[0] = -1;int len = strlen(T);while(i<len-1){if(j==-1 || T[i]==T[j]){++i;++j;if(T[i]!=T[j])next[i] = j;elsenext[i] = next[j];}elsej = next[j];}} int strStr(char *haystack, char *needle) {if(!haystack || !needle) return -1; int len_needle = strlen(needle);int len_haystack = strlen(haystack);if(len_needle == 0 && len_haystack == 0) return 0;if(len_needle > len_haystack) return -1;int *next = new int[len_needle];int i=-1, j=-1;get_next(next, needle);while(i<len_haystack && j<len_needle){if(j==-1 || haystack[i]==needle[j]){++i;++j;}elsej=next[j];}delete[] next;if(j==len_needle)return (i-len_needle);elsereturn -1; }};运行时间 12ms
0 0
- LeetCode 028. Implement strStr()
- 【LeetCode】028.Implement strStr()
- 【LeetCode】 028. Implement strStr()
- [LeetCode] 028. Implement strStr() (Easy) (C++/Python)
- 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()
- linux安装bigfish
- Distinct Subsequences
- ANDROID获取应用名称和版本号
- 《万能数据库查询分析器》创作人之2014年总结
- 特种浓缩分离:中药提取液的澄清过滤技术
- LeetCode 028. Implement strStr()
- kindeditor
- solr4.0+IKAnalyzer 中文搜索,无法查询到结果的解决方法-【布尔逻辑和 空格后默认加默认搜索字段】
- 从 Flash 到 Cocos2d-x
- 上拉加载下拉刷新的原理
- 特种浓缩分离:生物农药超滤分离提纯过滤技术
- C语言编程(练习6:循环,三大循环结构 )
- Git的Patch功能
- MyEclipse10 安装SVN插件及SVN插件在MyEclipse10下使用方法