javascript-字节跳动,腾讯大厂面试题——力扣(28)实现strStr()

题目

【javascript-字节跳动,腾讯大厂面试题——力扣(28)实现strStr()】给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
示例
输入: haystack = "hello", needle = "ll"
输出: 2
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/implement-strstr
解题思路
  • 首先我们看到题目的时候,就会直接想到使用indexOf(),来返回检索的下标。但是我们使用这种方式有点投机取巧。我们应该用最底层的方法来实现。
  • 第二种,底层实现
    • 首先先判断传入的第二个字符是否为空,就返回0.
    • 之后我们循环遍历给定的字符串,将当前字符和检索字符的第一项对比,如果相同。我们就创建一个index=0来记录,比对成功的次数。
    • 比对成功后,我们就循环遍历要查找的字符串。让当前字符和之前字符串的字符对比。比对不成功就直接跳出,如果比对成功,index++。
    • 之后我们遍历完要查找的字符串,比对一下index和要检索的字符串的长度是否相等,如果相等。我们就直接返回外部循环的i。
    • 最后我们所有对比不成功,就返回-1。
代码
  • 话不多说,直接上代码。
// 取巧的方法 function strStr(haystack, needle){ return haystack.indexOf(needle); };

  • 原始的方法
function strStr(haystack, needle){ if(needle === "") return 0; for(var i = 0 ; i < haystack.length ; i++){ if(haystack[i] === needle[0]){ var index =0; for(var j = 0 ; j

    推荐阅读