Leetcode算法题每日一练

第一次尝试用Javascript做Leetcode上的算法题,做了三个小时,终于完成了我的处女作。
简直写的要吐血了,此处有无数……….
原文题目如下:
Input: dict = [“cat”, “bat”, “rat”]
sentence = “the cattle was rattled by the battery”
Output: “the cat was rat by the bat”
解题思路如下:
dict模糊匹配sentence里的内容,按照sentence的顺序,将dict数组重排。
找出sentence里面所有单词,如果dict里不包含这个单词就把这个单词存放在一容器arr中,如果dict包含这个单词,将sentence相同位置的词替换为dict中的那个词,这就保证了输出结果符合题中要求。

代码如下:

var replaceWords = function(dict, sentence) {
    var result=[];
    var newarr={};
    for(var i=0;ivar j=sentence.indexOf(dict[i].toString());
        if(j>-1){
            newarr[j]=dict[i].toString();
        }
    }
    for(var key in newarr){
        result.push(newarr[key])
    }
    dict=result;  //将dict的数组重新排列
    var newStr=sentence.split(" ");
    var arr = [];
    var s=0;
    for(var i=0;iif(newStr[i].indexOf(dict[s])>-1){
                    arr.push(dict[s]); //将需要替换的字符串存在在arr中
                    s++;
                }
                else{
                    arr.push(newStr[i]);//保留原来不变的字符串,存放在arr中
                }
           //return arr;
    }
    return arr.join(" "); //将最终结果数组转化为字符串并用空格分开
    }
var dict=["cat", "bat", "rat"];
var sentence="the cattle was rattled by the battery";
console.log(replaceWords(dict,sentence));

你可能感兴趣的:(leetcode-java)