0%

LeetCode题解|28. 实现strStr()

题目链接:28. 实现strStr()

概述

给定一个haystack字符串和一个needle字符串,在haystack字符串中找出needle字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1

思路

字符串匹配,有这么几种方法:BF算法RK算法BM算法KMP算法

本文使用了最简单的BF算法,击败了90.34%的JavaScript提交记录。

实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
* @param {string} haystack
* @param {string} needle
* @return {number}
*/
var strStr = function(haystack, needle) {
if (needle === '' || needle === haystack) {
return 0
}
const needleLen = needle.length
const hayLen = haystack.length
for (let i = 0; i <= hayLen - needleLen; i++) {
if (haystack.slice(i, needleLen + i) === needle) {
return i
}
}
return -1
};

题解合集