将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
以上就是翻转单词顺序的简单方法的详细内容。
