简单-LeetCode 面试题58. I.翻转单词顺序
程序员文章站
2022-04-30 18:21:59
...
题目
来源: I.翻转单词顺序
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。
示例
解题思路及代码
1. 思路
主要的思路就是,从字符串最后一个单词开始,倒着遍历字符串,取出字符串中的每一个单词放入结果数组中即可。
采用双指针来实现,去除字符串的头尾空格,设置双指针i j,当i,j分别指向每个单词的左右边界时,取出对应单词,直到i遍历至字符串第一个字符,取出单词放入结果数组中后,直接返回结果数组。
2. 代码
var reverseWords = function(s) {
s = s.trim();
var res = [];
var i = s.length - 1;
var j = i;
while (i >= 0) {
while (s[i] != " " && i >= 0) {
i--;
}
res.push(s.slice(i + 1, j + 1) + " ");
while (s[i] == " " && i >= 0) {
i--;
}
j = i;
}
return res.join("").trim();
};