反转字符串中单词的顺序
给定一个输入字符串 s,反转单词的顺序。一个单词定义为一系列非空格字符。s 中的单词至少由一个空格分隔。返回一个以相反顺序排列的单词字符串,单词之间由单个空格分隔。
关键要求:
删除单词之间以及字符串开头/结尾处的多余空格。反转单词的顺序(而不是字符)。
示例 1:
输入:s = "the sky is blue"输出:"blue is sky the"
示例 2:
输入:s = " hello world "输出:"world hello"解释:反转后的字符串不应包含前导或尾随空格。
示例 3:
输入:s = "a good example"输出:"example good a"解释:需要将两个单词之间的多个空格减少为反转字符串中的单个空格。
解决方案:
以下 JavaScript 代码使用正则表达式高效地解决了这个问题:
var reverseWords = function(s) { // 使用正则表达式替换多个空格为单个空格,并去除首尾空格 return s.replace(/s+/g, ' ').trim().split(' ').reverse().join(' ');};
代码解释:
s.replace(/s+/g, ' '): 使用正则表达式 /s+/g 替换一个或多个空格 (s+) 为单个空格。g 标志确保替换所有匹配项。
.trim(): 去除字符串开头和结尾的多余空格。
.split(' '): 根据空格将字符串分割成一个单词数组。
.reverse(): 反转单词数组的顺序。
.join(' '): 将反转后的单词数组连接成一个字符串,单词之间用单个空格分隔。
![[算法]字符串中的反向单词](https://www.chuangxiangniao.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
这个解决方案简洁明了,有效地处理了多余空格和单词反转的问题。 它避免了复杂的循环和条件语句,提高了代码的可读性和效率。
以上就是[算法]字符串中的反向单词的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1501242.html
微信扫一扫
支付宝扫一扫