1. 程式人生 > 其它 >談一談 Memory

談一談 Memory

一、題目

 

 二、分析

  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(" "); };