示例 1:
输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:
1:将输入的字符串用空格切分成数组,然后通过操作每一项,进行反转。
2: 反转之后,进行数组的拼接。
以下3钟方法思路全部一样,写法不一样,渐进优化
第一次实现:
var reverseWords = function (s) {
const arr = s.split(' ')
const val = arr.map((item) => {
return item.split('').reverse().join('')
})
let str = ''
for (let i = 0; i < val.length; i++) {
if (i === val.length - 1) {
str += val[i]
} else {
str += val[i] + ' '
}
}
return str
}
优化1:
var reverseWords = function (s) {
const arr = s.split(' ')
const val = arr.map((item) => {
return item.split('').reverse().join('')
})
// 直接使用api拼接效率更高
return val.join(' ')
}
优化2:
var reverseWords = function (s) {
const arr = s.split(' ')
let str = ''
for (let i = 0; i < arr.length; i++) {
if (i === arr.length - 1) {
str += arr[i].split('').reverse().join('')
} else {
str += arr[i].split('').reverse().join('') + ' '
}
}
return str
}