Implement strStr() - Javascript

来源:互联网 发布:淘宝导航栏全屏 编辑:程序博客网 时间:2024/06/05 06:00

Implement strStr().

Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

Tags

Two Pointers, String

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Cheat one line solution by using Javascript API

// Solution 1/** * @param {string} haystack * @param {string} needle * @return {number} */var strStr = function (haystack, needle) {    return haystack.indexOf(needle);};


Without using the JS API, mimic the window slider.

/** * @param {string} haystack * @param {string} needle * @return {number} */var strStr = function(haystack, needle) {    if(haystack === "") {        return needle === "" ? 0 : -1;    }        if(needle === "") {        return 0;    }        //Guarantee haystack non-empty    var len1 = haystack.length;    var len2 = needle.length;        if(len1<len2) {        return -1;    } else if(len1 === len2) {        return haystack === needle ? 0 : -1;    } else {        //guarantee haystack is longer than needle        var startpoint = 0;        while(startpoint <= len1-len2) {            var parent = startpoint, child = 0;            while(haystack[parent] === needle[child]){                parent++;                child++;                                if(child === len2) {                    return startpoint;                }            }            startpoint++;        }                return -1;    }};



0 0