题目链接: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
|
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 };
|
题解合集