美文网首页
leetcode-javascript-28. 实现 strSt

leetcode-javascript-28. 实现 strSt

作者: 一书文集 | 来源:发表于2019-10-05 11:57 被阅读0次

strStr() 找出开始位置,返回下标值,否则返回-1
再js里面,用indexOf。
分析 + 思路
要进行子字符串与木字符串的对比
我们可以直接使用for + substring 送分题

var strStr = function(haystack, needle) {
    return haystack.indexOf(needle)

};

我的解法
使用slice 从i到needle长度的,转回字符串与needle对比

var strStr = function(haystack, needle) {
    //每次取两个元needle个元素,i+= needle.length,直到有位置否则返回-1
    if(haystack == "" && needle=="") return ""
    for(let i=0; i<haystack.length;i++){
        let arr = haystack.split("")
        let arr2 = arr
//数组无法直接判断,转化成字符串
//转化成数组的目的是为了使用slice
        if((arr2.slice(i, needle.length+i)).join("") == needle) {
//i , needle.length+1可以完成固定长度的切割
           return i;
        }
    }
    return -1
    
};

用开关

var strStr = function(haystack, needle){
    if (needle==="") return 0
    for(var i=0;i<haystack.length;i++){
        if(haystack[i]===needle[0]){ //从第一个元素 与needle的第一个元素比较,
            var flag = true;
//第二个for循环只便利needle.length, 每次只会有needle长度的判断, 利用数组进行判断 
//不需要切割
            for (var j=1;j<needle.length;j++){
                if (haystack[i+j]!=needle[j]){ //数组只能够单个进行判断
                    flag = false
                    break;
                }
            }
            if (flag) return i
//
        }
    }
    return -1
};

 

substr, 速度和indexof类似

var strStr = function (haystack, needle) {
    if (needle === "") return 0
    for (var i = 0; i < haystack.length; i++) {
        if (haystack[i] === needle[0]) { //haystack.charAt(i)
            if (haystack.substring(i, i + needle.length) === needle) return i;
        }
    }
    return -1
};



| 1 分钟前 | 通过 | 28 ms | 14 MB | Python3 |
| 2 分钟前 | 通过 | 1 ms | 37 MB | Java |
| 4 分钟前 | 通过 | 4 ms | 9.2 MB | Cpp |
| 5 分钟前 | 通过 | 64 ms | 35.8 MB | Javascript |
| 10 分钟前 | 通过 | 56 ms | 35.9 MB | Javascript |
| 20 分钟前 | 通过 | 3760 ms | 35.6 MB | Javascript |
| 14 小时前 | 通过 | 56 ms | 33.6 MB | Javascript |

相关文章

网友评论

      本文标题:leetcode-javascript-28. 实现 strSt

      本文链接:https://www.haomeiwen.com/subject/udvspctx.html