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<dict.length;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<newStr.length;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));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章