【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(' ')// 使用单一空格连接成结果返回
};
相关推荐
人间乄惊鸿客4 小时前
Linux所遇问题自记录
linux
AOwhisky5 小时前
MySQL 学习笔记(第四期):SQL 语言之多表查询
linux·运维·网络·数据库·笔记·学习·mysql
Phantom Void5 小时前
服务器处理客户端请求的设计方法
linux·运维·网络
小红卒5 小时前
mysql之udf提权
数据库·mysql·网络安全
一段路5 小时前
【虚拟机】Linux常用命令
linux·vim
Trouvaille ~6 小时前
【Redis篇】Redis 哨兵(Sentinel):高可用自动故障转移
数据库·redis·缓存·中间件·sentinel·高可用·哨兵
qfljg6 小时前
oracle 迁移到postgres
数据库·oracle
daad7776 小时前
继续记录无人机SITL的起飞
linux
giaz14n9X6 小时前
Redis 分布式锁进阶第五十七篇
数据库·redis·分布式
剑神一笑7 小时前
Linux ls 命令深度解析:从目录遍历到颜色输出的实现原理
linux·服务器·数据库