leetcode——Implement strStr() 实现字符串匹配函数(AC)
2017-07-11 12:09
423 查看
Implement strStr().
Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.
这个题考查的是KMP算法。先求特征向量,然后再进行匹配,确实能够大大提高效率。code例如以下:
Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.
这个题考查的是KMP算法。先求特征向量,然后再进行匹配,确实能够大大提高效率。code例如以下:
class Solution { public: char *strStr(char *haystack, char *needle) { if(strlen(haystack)==0&&strlen(needle)==0) return haystack; if(strlen(haystack)==0&&strlen(needle)!=0) return NULL; if(strlen(needle)==0) return haystack; int m=strlen(needle); int *N = new int[m]; N[0]=0; int i,j,k; for(i=1;i<m;i++) { k=N[i-1]; while(k>0 && needle[i]!=needle[k]) { k=N[k-1]; } if(needle[i]==needle[k]) N[i]=k+1; else N[i]=0; } j=0; for(i=0;i<strlen(haystack);i++) { while(j>0 && needle[j]!=haystack[i]) j=N[j-1]; if(needle[j]==haystack[i]) j++; if(j==strlen(needle)) return haystack+i-j+1; } return NULL; } };
相关文章推荐
- leetcode——Implement strStr() 实现字符串匹配函数(AC)
- LeetCode Implement strStr() 实现strstr()
- leetcode | Implement strStr() | 实现字符串查找函数
- leetcode_28题——Implement strStr()(采用KMP算法,还没AC,但自己这边测试无误)
- LeetCode 之 Implement strStr() — C 实现
- LeetCode专题-Python实现之第28题: Implement strStr()
- LeetCode 28 Implement strStr()(实现strStr()函数)
- 【leetcode KMP算法实现】Implement strStr()
- [LeetCode] Implement strStr() 实现strStr()函数
- leetcode5 Implement strstr() 实现strstr函数功能
- LeetCode 28 Implement strStr() (实现找子串函数)
- Implement strStr() 实现strStr函数 @ LeetCode
- 【LeetCode】005 Implement strStr() 函数strStr()的功能实现
- 【LeetCode-面试算法经典-Java实现】【028-Implement strStr() (实现strStr()函数)】
- [C++]LeetCode 28: Implement strStr() (实现strStr()函数)
- leetcode 题解 || Implement strStr() 问题 (即 KMP 算法实现)
- [LeetCode] Implement strStr() 实现strStr()
- LeetCode - Implement strStr()
- leetcode -- Implement strStr()
- [leetcode]Implement strStr()