本题是字符串类型的题
难度:简单
题目557:给定一个字符串 s,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入:s = "Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"
提示:
-
1 <= s.length <= 5 * 104 -
s包含可打印的 ASCII 字符。 -
s不包含任何开头或结尾空格。 -
s里 至少 有一个词。 -
s中的所有单词都用一个空格隔开。🧑 感想: 这是一道简单题中解决字符串类型问题中比较常见的解法,题目清晰易懂
🧑 解题思路: 字符串根据单词翻转,翻转字符串一般我都会先切割成数组用数组的方法直接翻转。 但是这道题是单词翻转,所以我们先根据单词切割成数组。 然后遍历数组,再遍历数组中的每个项从后往前,放入一个新的结果集中。
🧑 tips: 因为题目提示中显示,前后不包含空格,且单词都是用一个空格隔开,所以我们可以放心的使用空格切割字符串
function reverseWords(s: string): string {
let sArr: string[] = s.split(' ')
let result: string = ''
sArr.forEach((item, index) => {
for (let i = item.length - 1; i >= 0; i--) {
result += item[i]
}
if (index + 1 !== sArr.length) {
result += ' '
}
})
return result
};