一、题目

二、分析
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(" "); };
浙公网安备 33010602011771号