给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
输入:"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 颠倒元素
/**
* @param {string} s
* @return {string}
*/
var reverseWords = function (s) {
return s
.split(' ')
.map((item) => Array.from(item).reverse().join(''))
.join(' ')
}
[1]
题目:: https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/