https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof/
示例 1:
输入: “the sky is blue”
输出: “blue is sky the”
示例 2:
输入: " hello world! "
输出: “world! hello”
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:
输入: “a good example”
输出: “example good a”
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
解题思路:首先是调用自带的库函数实现首尾空格删除,删除之后逆序遍历,每一次遇到空格的时候则将对应的子字符串加入到数组中去,然后使用下标 i 来每次往前遍历,每次得到一个结果后将当前i 的值赋值给j,用其来实现下一个字符串的截取。最后返回使用数组中的join的方式即可!
解题语言:JavaScript
/**
* @param {string} s
* @return {string}
*/
var reverseWords = function(s) {
s = s.trim();
console.log(s);
var i = j = s.length - 1;
var res = [];
while(i >= 0) {
while (i >= 0 && s[i] != ' '){
i = i - 1;
}
res.push(s.substring(i+1, j+1));
while(s[i] == ' ') {
i = i -1;
}
j = i;
}
return res.join(' ');
};