leetcode第28题实现 strStr()

143 阅读1分钟

题目: 实现 strStr() 函数。

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回  -1 。题目链接

  • JavaScript一句话解法
/**
 * @param {string} haystack
 * @param {string} needle
 * @return {number}
 */


var strStr = function(haystack, needle) {
  return needle.length>0?haystack.indexOf(needle):0;
};

  • 手写indexOf方法
/**
 * @param {string} haystack
 * @param {string} needle
 * @return {number}
 */
 var strStr = function(haystack, needle) {
  const len = needle.length
  if(len===0) return 0;
  for(let index=0;index<haystack.length;index++){
      if(haystack[index]===needle[0]){
          if(haystack.slice(index, index+len)===needle){
              return index;
          }
      }
  }

  return -1;
};

两种方法执行时间差不多