[LeetCode] 28. Implement strStr()

强颜欢笑 提交于 2020-02-29 03:53:09

实现strStr()函数。题意是给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。这个题有KMP算法的答案但是我这里只给出另一个简单的解法,不算暴力解。

Example 1:

Input: haystack = "hello", needle = "ll"
Output: 2

Example 2:

Input: haystack = "aaaaa", needle = "bba"
Output: -1

时间O(n)

空间O(1)

 1 /**
 2  * @param {string} haystack
 3  * @param {string} needle
 4  * @return {number}
 5  */
 6 var strStr = function (haystack, needle) {
 7     // corner case
 8     if (needle === '') {
 9         return 0;
10     }
11 
12     if (needle.length > haystack.length) {
13         return -1;
14     }
15 
16     // normal case
17     let m = haystack.length;
18     let n = needle.length;
19     for (let i = 0; i < m - n + 1; i++) {
20         if (haystack.substring(i, i + n) === needle) {
21             return i;
22         }
23     }
24     return -1;
25 };

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!