题目描述
- 给定一个字符串
s,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
解题思路
- 通过当前字符是否为空字符来判断是否为一个单词的结尾
- 需要注意的是最后一个单词需要单独处理
解题代码(JavaScript)
var reverseWords = function (s) {
// 字符串长度
let len = s.length;
// 单词数组
let word = [];
// 字符串单词数组
let wordArr = [];
for (let i = 0; i < len; i++) {
if (s[i] === " ") {
// 当字符为空说明一个单词结尾
// 将单词加入字符串单词数组
wordArr.push(word.reverse().join(""));
// 将单词数组置空
word = [];
} else {
// 当字符不为空,说明是同一个单词
// 将字符加入单词数组中
word.push(s[i]);
}
}
// 最后一个单词之后没有空字符(容易遗忘,导致少一个单词)
if (wordArr) wordArr.push(word.reverse().join(""));
return wordArr.join(" ");
};