LeetCode 28. Implement strStr暴力搜索和KMP算法
来源:互联网 发布:周清扬的淘宝店铺名 编辑:程序博客网 时间:2024/05/18 02:54
/************************************************************************
* Implement strStr().
*
* Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.
*
************************************************************************/
方法一:暴力搜索算法
int strStr(string haystack, string needle) { int hlen=haystack.size(),nlen=needle.size(); int i=0,j=0; while (i<hlen&&j<nlen) { if (haystack[i]==needle[j]) { ++i;++j; } else { i=i-j+1; j=0; } } return (j==nlen) ? i-j:-1; }
方法二:KMP算法
void NextArrayCal(string &str,vector<int> &next) { int j=0,k=-1; next[0]=-1; while(j<str.size()-1) { if(k==-1||str[j]==str[k]) { j++,k++; if(str[j]!=str[k]) next[j]=k; else next[j]=next[k]; // next[j]=k; //可不要 } else k=next[k]; } } int strStr(string haystack, string needle) { int hlen=haystack.size(),nlen=needle.size(); if (nlen == 0) return 0;//一定注意要有,因为调用函数中有 int i=0,j=0; //next[0]=-1; vector<int>next(nlen); NextArrayCal(needle,next); while (i<hlen&&j<nlen) { if (j==-1||haystack[i]==needle[j]) { ++i;++j; } else j=next[j]; } return (j==nlen) ? i-j:-1; }
0 0
- LeetCode 28. Implement strStr暴力搜索和KMP算法
- Leetcode 28. Implement strStr() KMP算法解题
- leetcode 28. Implement strStr() KMP 算法
- Implement strStr() [leetcode] BM算法和KMP算法
- 28. Implement strStr()(KMP算法)
- 【leetcode】28. Implement strStr()(Python & C++)(KMP算法)
- [Leetcode] Implement strStr()与 KMP算法
- 【leetcode KMP算法实现】Implement strStr()
- Leetcode 28 Implement strStr() KMP算法
- leetcode 28: Implement strStr() (KMP算法)
- [Leetcode P28] Implement strStr()(KMP算法)
- LeetCode Implement strStr() --- KMP
- Implement strStr() [LeetCode] + KMP
- kmp-----leetcode(Implement strStr() )
- KMP 算法 && Implement strStr()
- Implement strStr() && kmp算法
- Implement strStr() KMP算法
- 28. Implement strStr()(KMP)
- 插入视频 音频 链接
- PHP接收POST数据方式
- 编写一个Linux 64位应用的注册机
- POI 中的CellRangeAddress 参数
- 不能获取IP地址而且可以重启网卡设置的修复方式
- LeetCode 28. Implement strStr暴力搜索和KMP算法
- js 原声制作进度条
- Flex 布局教程:实例篇
- 查询字符串中最长数字的长度及数字
- POI生成excel带下拉
- NOIP 2013 - Day 1 货车运输 重庆一中高2018级竞赛班第二次测试 2016.7.13 Problem 4
- 变量的进化----我们需要什么样进行数据存储
- 为了对电脑进行保护,已经阻止此应用
- linux 下 tomcat启动没问题,但是局域网访问不了,那是防火墙没开,开一下即可。