【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(' ')// 使用单一空格连接成结果返回
};
相关推荐
Wyz201210242 分钟前
CSS如何实现导航栏下划线随鼠标移动_利用-hover伪类与过渡动画控制
jvm·数据库·python
2201_761040592 分钟前
SQL如何统计每个用户的首次行为时间_MIN聚合与分组
jvm·数据库·python
qq_189807038 分钟前
mysql如何实现定时清理缓存数据_利用event scheduler执行
jvm·数据库·python
Polar__Star10 分钟前
golang如何实现低功耗设备唤醒机制_golang低功耗设备唤醒机制实现教程
jvm·数据库·python
a95114164212 分钟前
CSS怎么在flex布局中实现项目均分间距_设置justify-content space-evenly
jvm·数据库·python
2201_7610405918 分钟前
Golang如何做灰度发布_Golang灰度发布教程【实战】
jvm·数据库·python
小梦爱安全20 分钟前
SQL Server(Linux)安装
数据库·microsoft·sqlserver
baidu_3409988225 分钟前
CSS Grid布局如何实现项目在网格内填充_掌握justify-items属性
jvm·数据库·python
2401_8971905529 分钟前
JavaScript中数组洗牌算法Shuffle的随机性优化处理
jvm·数据库·python
洛水水32 分钟前
图解式讲解内存池:告别内存碎片与随机coredump
linux·内存池