LeetCode 28. Implement strStr()

Solution1:我的答案
有投机取巧之嫌啊~
注意string中的查找函数在查找时
参考网址:https://www.cnblogs.com/catgatp/p/6407788.html
s.find(s1) 查找s中第一次出现s1的位置,并返回(包括0)
s.rfind(s1) 查找s中最后次出现s1的位置,并返回(包括0)
s.find_first_of(s1) 查找在s1中任意一个字符在s中第一次出现的位置,并返回(包括0)
s.find_last_of(s1) 查找在s1中任意一个字符在s中最后一次出现的位置,并返回(包括0)
s.find_first_not_of(s1) 查找s中第一个不属于s1中的字符的位置,并返回(包括0)
s.find_last_not_of(s1) 查找s中最后一个不属于s1中的字符的位置,并返回(包括0)

class Solution {
public:int strStr(string haystack, string needle) {if (needle.empty()) return 0;return haystack.find(needle);}
};

Solution2:
参考网址:http://www.cnblogs.com/grandyang/p/4606696.html
暴力算法:时间复杂度O(m∗n)O(m∗n)O(m*n)
如果子字符串为空,则返回0,如果子字符串长度大于母字符串长度,则返回-1。然后我们开始遍历母字符串,我们并不需要遍历整个母字符串,而是遍历到剩下的长度和子字符串相等的位置即可,这样可以提高运算效率。然后对于每一个字符,我们都遍历一遍子字符串,一个一个字符的对应比较,如果对应位置有不等的,则跳出循环,如果一直都没有跳出循环,则说明子字符串出现了,则返回起始位置即可,代码如下:

class Solution {
public:int strStr(string haystack, string needle) {if (needle.empty()) return 0;int m = haystack.size(), n = needle.size();if (m < n) return -1;for (int i = 0; i <= m - n; ++i) {int j = 0;for (j = 0; j < n; ++j) {if (haystack[i + j] != needle[j]) break;}if (j == n) return i;}return -1;}
};

Solution3:
KMP算法
解释KMP算法的一篇文章:https://blog.csdn.net/starstar1992/article/details/54913261

【To Do】LeetCode 28. Implement strStr() 和KMP算法相关推荐

  1. LeetCode - 28. Implement strStr()

    28. Implement strStr() Problem's Link -------------------------------------------------------------- ...

  2. leetCode 28. Implement strStr() 字符串

    28. Implement strStr() Implement strStr(). Returns the index of the first occurrence of needle in ha ...

  3. [leetcode] 28. Implement strStr() 解题报告

    题目链接:https://leetcode.com/problems/implement-strstr/ Implement strStr(). Returns the index of the fi ...

  4. LeetCode 28 Implement strStr()(实现strStr()函数)

    翻译 实现strStr()函数.返回针(needle)在草垛/针垛(haystack)上第一次出现的索引, 如果不存在其中则返回-1.其实也就是说字符串str2在字符串str1中第一次出现的索引而已. ...

  5. leetcode 28. Implement strStr() 实现strStr()

    C++代码,题目相对不是很难 1 class Solution { 2 public: 3 int strStr(string haystack, string needle) { 4 if(need ...

  6. leetcode 28. 实现 strStr()(kmp)

    实现 strStr() 函数. 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始).如果不存在,则返 ...

  7. 力扣28. 实现 strStr()(KMP算法,JavaScript)

    var strStr = function(haystack, needle) {//如果目标字符串长度为0,则返回0if(needle.length===0){return 0}//目标字符串长度不 ...

  8. LeetCode - Easy - 28. Implement strStr()

    Topic Two Pointers, String Description https://leetcode.com/problems/implement-strstr/ Implement str ...

  9. 【LeetCode】28. Implement strStr()

    Difficulty:easy  More:[目录]LeetCode Java实现 Description Implement strStr(). Return the index of the fi ...

最新文章

  1. Nature、Science的绘图新宠,博导人论文覆盖率高达78%...
  2. HttpClient+Jericho HTML Parser 实现网页的抓取
  3. vnr光学识别怎么打开_水晶光电:光学元件需求向好,光学创新打开成长新空间,未来可期...
  4. ios_UITextField右侧小圆叉
  5. jquery +做CheckBoxList全选,反选
  6. php什么程度算学会,十天学会PHP - 序1,学会的标准是什么?(20180820-1)
  7. git批量删除文件和批量提交
  8. authorization 传 就跨域_跨域访问接口上传图片出现options请求问题解决方法
  9. centos7下kubernetes(1。kubernetes---start)
  10. 手工机器人的做法大全用易拉罐_快来吃“智能机器人炒饭”啦!顾客:比人工炒饭还好吃!...
  11. 网约车源码 打车APP 同城打车代驾小程序源码
  12. tiff文件读写等操作(多帧tiff图像保存成的.tif文件)
  13. Blizzard的MPQ文件格式搜索算法
  14. 与其说我害怕成为普通人,还不如说我害怕生活,害怕找不到一种自己喜欢的方式去度过人生...
  15. jvm(17)垃圾回收器
  16. 2022金三银四面试总结-Java高级篇
  17. 如何在Oracle官网下载jdk
  18. IPFS - 可快速索引的版本化的点对点文件系统(草稿3)
  19. 洛谷 P4859 已经没有什么好害怕的了 解题报告
  20. UVA 10006(卡迈克尔数+素数打表)

热门文章

  1. 关于标题的多HTML定制
  2. Proteus仿真错误解决方法:No power supply specified for net 5V in Power Rail Configuration.
  3. 硕博经验——科研论文阅读与写作实战技巧
  4. 怎么查看php是否安装了symfony_为什么开发人员讨厌PHP???
  5. c java 语法_java程序员要学的c语法
  6. java显示字母数字组合_Java字母加数字组合比较大小
  7. dataframe 查找特定值_C++初级编程NOIP题:11H1544: 查找特定的值
  8. glusphere设置球位置_玄武区举办桌上冰壶球比赛暨江苏省桌上冰壶球俱乐部联赛(玄武区站)活动...
  9. linux开发 stc_Linux环境下搭建STC单片机平台的指南
  10. 简单的签到代码_【SAS小恩的代码段】02样本分布、两群体与组合差异性检定