28. Implement strStr()
来源:互联网 发布:java 判断紧急号码 编辑:程序博客网 时间:2024/06/11 03:35
Implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
class Solution {public: int strStr(string haystack, string needle) { const int len1 = haystack.length(); const int len2 = needle.length(); if(len2 > len1) return -1; if(len2 == 0) return 0; return kmp(haystack, len1, needle, len2); } int kmp(string& haystack, int len1, string& needle, int len2){ vector<int> next = get_next(needle, len2); int i = 0, j = 0; while(i < len1 && j < len2){ if(j == -1 || haystack[i] == needle[j]){ ++i; ++j; } else j = next[j]; } return j == len2 ? i - len2 : -1; } vector<int> get_next(string& needle, int len){ vector<int> next(len, 0); next[0] = -1; int k = -1, j = 0; while(j < len - 1){ if(k == -1 || needle[k] == needle[j]) next[++j] = ++k; else k = next[k]; } return next; }};
0 0
- [LeetCode]28.Implement strStr()
- LeetCode --- 28. Implement strStr()
- LeetCode 28.Implement strStr()
- [Leetcode] 28. Implement strStr()
- 28. Implement strStr()
- 【leetcode】28. Implement strStr()
- [leetcode] 28.Implement strStr()
- Leetcode-28.Implement strStr()
- 28. Implement strStr()
- 28. Implement strStr()
- 28. Implement strStr()
- 28. Implement strStr() LeetCode
- 28. Implement strStr()
- leetcode 28. Implement strStr()
- [LeetCode]28. Implement strStr()
- 28. Implement strStr()
- 28. Implement strStr()
- 28. Implement strStr()
- 数组清空练习和游戏练习
- Unity 3D学习习题
- 对软件测试的理解
- 对象指针为NULL,为什么还是可以调用成员函数
- 【机房重构】SQL数据库不允许保存更该,组织保存要求重新创建表的更改
- 28. Implement strStr()
- 第五届省赛javaB组- 立方变自身
- 变异opensips遇到的一个问题
- JAVA学习笔记0007----输入输出流
- 《剑指Offer》面试题五之从尾到头打印链表
- WebService(4):CXF
- 第五届省赛javaB组- 三羊献瑞
- C++11 标准新特性:Defaulted 和 Deleted 函数及constexpr
- Android 学习之Drawable-shape使用方法