【LeetCode 0151】【字符串】反转字符串中的单词

题目

https://leetcode.com/problems/reverse-words-in-a-string/

题解
  • 正则+高阶函数
javascript 复制代码
var reverseWords = function(s) {
   return  s.split(/[\s]+/).filter(e=>e!="").reverse().join(" ")  
};
  • 迭代+双指针(时间O(n) 空间O(n) ):从右边往左确定每一个单词,放入结果
javascript 复制代码
var reverseWords = function(s) {
    let answer = [];
    // i 指向单词首字符,j指向单词尾部下一个字符或者s串尾
    for( let i = s.length-1 , j = s.length; i >= 0; i--){
        if(s[i] == ' '){ // 发现新单词的尾部
            j = i
        }else if(i==0 || s[i-1] == ' '){// 发现新单词的首部
            answer.push(s.substring(i,j)) // 收集单词
        }
    }
    return answer.join(' ')// 使用单一空格连接成结果返回
};
相关推荐
HealthScience4 分钟前
Autoruns自启动/进程控制软件怎么使用?
linux·运维·服务器
qq_283720054 分钟前
MySQL 8.0新特性高频面试题 30 道(超详细答案)
数据库·mysql·面试·mysql8·高频试题
Arvin_Rong5 分钟前
Linux 服务器 /tmp 目录:使用机制与安全加固
linux·服务器·安全
wAEWQ6Ib76 分钟前
[拆解LangChain执行引擎]支持自然语言查询的长期存储
数据库·oracle·langchain
吴声子夜歌9 分钟前
Node.js——操作MongoDB
数据库·mongodb·node.js
小江的记录本13 分钟前
【RocketMQ】RocketMQ核心知识体系全解(5大核心模块:架构模型、事务消息两阶段提交、回查机制、延迟消息、顺序消息)
linux·运维·服务器·前端·后端·架构·rocketmq
数据知道13 分钟前
claw-code 源码详细分析:命令宇宙 vs 工具宇宙——`commands` / `tools` 镜像清单如何驱动路由与 shim 执行?
linux·服务器·网络·python·ai·claude code
三万棵雪松16 分钟前
【Linux 物联网网关主控系统-Web部分(二)】
linux·前端·物联网
一叶之秋141216 分钟前
通信之道:解锁Linux进程间通信的无限可能(一)
linux·运维·服务器
Deitymoon18 分钟前
linux——线程的概念
linux