首页 > 代码库 > LeetCode --- 28. Implement strStr()
LeetCode --- 28. Implement strStr()
题目链接: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 char * or String, please click the reload button to reset your code definition.
这道题的要求是实现strStr()函数,返回needle在haystack中第一次出现的位置,如果没找到,这返回-1。
这道题的直接思路就是暴力查找,就是一个字符一个字符地进行匹配。不多说了,如果有兴趣,可以去研究这几个O(m+n)的算法:Rabin-Karp算法、KMP算法和Boyer-Moore算法。
时间复杂度:O(mn)
空间复杂度:O(1)
1 class Solution
2 {
3 public:
4 int strStr(char *haystack, char *needle)
5 {
6 int l1 = strlen(haystack), l2 = strlen(needle);
7 for(int i = 0, j; i <= l1 - l2; ++ i)
8 {
9 for(j = 0; j < l2 && haystack[i + j] == needle[j]; ++ j);
10 if(j == l2)
11 return i;
12 }
13 return -1;
14 }
15 };
转载请说明出处:LeetCode --- 28. Implement strStr()
LeetCode --- 28. Implement strStr()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。