当前位置: 首页 > >

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;i var 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;i if(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));



友情链接: