题目:
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例
输入:"Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"
提示
在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
抛砖引玉
思路
分割字符逐个翻转
/**
* @param {string} s
* @return {string}
*/
var reverseWords = function (s) {
// 翻转字符串
function reverseStr(str) {
let result = '',
n = str.length,
i = 0
while (i < n) {
result = str[i] + result
i++
}
return result
}
let _result = '',
len = s.length
if (len === 0) return _result
let words = s.split(' '),
wordsLen = words.length
// 分割字符逐个翻转
for (let i = 0; i < wordsLen; i++) {
_result = _result + ' ' + reverseStr(words[i])
}
return _result.trim()
}
数组 reverse 方法
利用数组 reverse 颠倒元素
- 将单个字符分割后存到数组
- 逐个对单个字符转换成数组颠倒在转换成字符串
- 最后讲数组拼接成字符串
/**
* @param {string} s
* @return {string}
*/
var reverseWords = function (s) {
return s
.split(' ')
.map((item) => Array.from(item).reverse().join(''))
.join(' ')
}
博客: 小书童博客
每天的每日一题,写的题解会同步更新到公众号一天一大 lee 栏目
欢迎关注留言
公号: 坑人的小书童