每日一道算法Day13

84 阅读1分钟

题目描述

image.png

大致思路(暴力法)

先考虑边界情况: 如果needle.length === 0, 返回0;

遍历字符串haystack, 如果碰到当前字符与needle[0]相等, 则切割字符串haystack, 比较从当前位置开始的字符串到needle[0]长度结尾为止的这一段是否等于needle, 如果是, 则返回当前索引。如果循环结束,则代表着未能匹配上, 返回题目要求的-1。

代码如下:

function strStr(haystack: string, needle: string): number {
  if (!needle.length) return 0;
  for (let i = 0; i < haystack.length; ++i) {
    if (haystack[i] === needle[0] && haystack.substring(i, needle.length + i) === needle) {
      return i
    }
  }

  return -1;
}