概述
题目地址
https://leetcode.cn/problems/reverse-words-in-a-string-iii/
给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例
示例 1:
输入:s = "Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"
示例 2:
输出:"doG gniD"
提示
1
s 包含可打印的 ASCII 字符。
s 不包含任何开头或结尾空格。
s 里 至少 有一个词。
s 中的所有单词都用一个空格隔开。
思路
简单拆解法
第一步:将字符串按照空格拆分为数组。
第二步:对数组中的每个单词做翻转。
第三步:拼接字符串。
写法1
var reverseWords = function(s) {
// 转换为数组
let arr = s.split(" ")
// 对每个元素做翻转
let resultArr = arr.map(v=>
v.split("").reverse().join("")
)
// 拼接字符串
return resultArr.join(" ")
};
写法2:合并为一行代码
var reverseWords = function(s) {
return s.split(" ").map(v=>
v.split("").reverse().join("")
).join(" ")
};
写法3:使用正则split切割
var reverseWords = function(s) {
return s.split(/\s/g).map(v=>
v.split("").reverse().join("")
).join(" ")
};
写法4:使用正则match切割
var reverseWords = function(s) {
return s.match(/[\w']+/g).map(v=>
v.split("").reverse().join("")
).join(" ")
};
领取专属 10元无门槛券
私享最新 技术干货