首页 > 代码库 > Leetcode#28 Implement strStr()
Leetcode#28 Implement strStr()
原题地址
因为是道简单题,所以最简单的字符串匹配应该也能过,但还是练习一下KMP算法为好。KMP算法的介绍可以参考这篇
以后有时间试试Boyer-Moore算法
代码:
1 int strStr(char *haystack, char *needle) { 2 if (!needle[0]) return 0; 3 int n = strlen(needle); 4 int *next = new int[n + 1]; 5 int i, j; 6 7 i = 0; 8 j = -1; 9 next[0] = -1;10 while (needle[i]) {11 if (j < 0 || needle[i] == needle[j]) {12 i++;13 j++;14 next[i] = j;15 }16 else17 j = next[j];18 }19 20 i = 0;21 j = 0;22 while (haystack[i] && j < n) {23 if (j < 0 || haystack[i] == needle[j]) {24 i++;25 j++;26 }27 else28 j = next[j];29 }30 31 return j == n ? i - n : -1;32 }
Leetcode#28 Implement strStr()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。