实现strStr()函数。题意是给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。这个题有KMP算法的答案但是我这里只给出另一个简单的解法,不算暴力解。
Example 1:
Input: haystack = "hello", needle = "ll" Output: 2Example 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 };
来源:https://www.cnblogs.com/aaronliu1991/p/12381388.html