談一談 Memory
阿新 • • 發佈:2022-03-10
一、題目
二、分析
1.第一種:利用 split 函式 將字串以空格切割然後組成陣列,在用陣列倒序輸出,然後用 join 函式 給出答案
2.第二種:雙指標;頭尾部都有空格,所以我們要先去除,然後再利用slice()函式組成一起(a.slice(start,end) end不包括當前位置),如何把組成的字母放到前面,我們可以利用 a.unshift()函式方法(可向陣列的開頭新增一個或更多元素,並返回新的長度。)
來源:JavaScript Array slice() 方法 | 菜鳥教程 (runoob.com)、JavaScript unshift() 方法 | 菜鳥教程 (runoob.com)
/** * @param {string} s * @return {string} */ var reverseWords = function(s) { let n = s.split(" ");// 將字串裡的字母 以空格進行分割 組成一個數組 let tmp = new Array(); for( let i = n.length-1; i>=0; i--){ // if( n[i] ){ // tmp.push(n[i]); // } // n[i] && tmp.push(n[i]); 上面的if 和 這條語句相同意思} return tmp.join(" ")//將數組裡的元素按著以空格形式分割,組成一個字串 };
/** * @param {string} s * @return {string} */ var reverseWords = function(s) { let i = 0; let len = s.length; let j = len-1; let tmp = new Array(); // 去頭尾空格 while( s[i] == ' '){ i++; } while( s[j] == ' '){ j--; } // 組成新的字串 s = s.slice(i,j+1); i = 0; j = 0; while( j<len ){ while( j<len && s[j] !=' '){ j++; } tmp.unshift(s.slice(i,j));//組成字母,並放到陣列第一位 while( j<len && s[j] ==' '){ j++; } i = j; } return tmp.join(" "); };