翻轉單詞順序

將I am boy輸出爲boy am I

首先將I am boy轉爲yob ma I,str[0]與str[len-1]交換順序,空間複雜度爲O(1)。然後yob ma I中每個單詞應用同樣的方法翻轉。

function reverse(str) {
   var strArr = str.split("");
   var len= Math.floor(str.length/2),strLen = str.length-1;
   for(var i=0;i<len;i++){
     var temp = strArr[i];
     strArr[i] = strArr[strLen - i];
     strArr[strLen - i] = temp;
   }
   return strArr.join("");
}
function reverseWord(str) {
    str = reverse(str);
    var strArr = str.split(" ");
    var newArr = strArr.map(function (item) {
      return  reverse(item);
    });
    return newArr.join(" ");
}


console.log(reverseWord("I am boy"));

(1)注意需將字符串轉爲字符數組,因爲數組爲引用類型,相互交換可以更改原始值,而字符串不行。比如:

var str = "boy";
str[0].=str[2];
console.log(str);

(2)問題:引入了新數組newArr

發佈了179 篇原創文章 · 獲贊 82 · 訪問量 55萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章