本文介绍: 把words拼接为一整个字符串,循环words里的每个单词,如果能匹配两次并且位置不同就说明该单词为子字符串。方法二: indexOf()和lastIndexOf()对每个单词循环判断是否是其他单词的子字符串。

方法一 暴力枚举:

对每个单词循环判断是否是其他单词的子字符串

var stringMatching = function(words) {
    const ret = [];
    for (let i = 0; i < words.length; i++) {
        for (let j = 0; j < words.length; j++) {
            if (i !== j && words[j].search(words[i]) !== -1) {
                ret.push(words[i]);
                break;
            }
        }
    }
    return ret;
};

消耗时间和内存情况:

 

方法二: indexOf()和lastIndexOf()

把words拼接为一整个字符串,循环words里的每个单词,如果能匹配两次并且位置不同就说明该单词为子字符串

var stringMatching = function(words) {
    let res=[]
    let str=words.join('+')
    for(let word of words){
        if(str.indexOf(word)!=-1 && str.indexOf(word)!=str.lastIndexOf(word) ){
            res.push(word)
        }
    }
    return res
};

 消耗时间和内存情况:

原文地址:https://blog.csdn.net/weixin_52878347/article/details/136057460

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_68309.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注