【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(' ')// 使用单一空格连接成结果返回
};
相关推荐
IvorySQL26 分钟前
PostgreSQL 技术日报 (3月10日)|IIoT 性能瓶颈与内核优化新讨论
数据库·postgresql·开源
DBA小马哥4 小时前
时序数据库是什么?能源行业国产化替换的入门必看
数据库·时序数据库
爱可生开源社区6 小时前
某马来西亚游戏公司如何从 SQL Server 迁移至 OceanBase?
数据库
xlp666hub6 小时前
Leetcode第五题:用C++解决盛最多水的容器问题
linux·c++·leetcode
张宏2367 小时前
原子操作 (基于Linux 应用层 C 语言)
linux
小瓦码J码8 小时前
PostgreSQL表名超长踩坑记
数据库·postgresql
yhyyht8 小时前
InfluxDB入门记录(三)flux-dsl
数据库·后端
kymjs张涛1 天前
OpenClaw 学习小组:初识
android·linux·人工智能
程序设计实验室1 天前
经历分享,发现挖矿木马后,服务器快速备份与重装(腾讯云平台)
linux
IvorySQL1 天前
PostgreSQL 技术日报 (3月9日)|EXPLAIN ANALYZE 计时优化与复制语法讨论
数据库·postgresql·开源