Find the Index of the First Occurrence in a String

Problem Description

Given two strings needle and haystack, return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

 

Example 1:

Input: haystack = "sadbutsad", needle = "sad"
Output: 0
Explanation: "sad" occurs at index 0 and 6.
The first occurrence is at index 0, so we return 0.

Example 2:

Input: haystack = "leetcode", needle = "leeto"
Output: -1
Explanation: "leeto" did not occur in "leetcode", so we return -1.

 

Constraints:

Solution (JavaScript)

/**
 * @param {string} haystack
 * @param {string} needle
 * @return {number}
 */
var strStr = function(haystack, needle) {
    function index(h, n, i) {
        if(h.length < n.length) return -1;
        if(h.substring(0, n.length) === n) return i;
        return index(h.slice(1), n, i+1);
    }
    return index(haystack, needle, 0);
};