【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(' ')// 使用单一空格连接成结果返回
};
相关推荐
傻小胖3 分钟前
MongoDB的下载安装与启动
数据库·mongodb
bjzhang7510 分钟前
重启CentOS系统的rsyslogd服务
linux·centos·rsyslogd服务
Lw老王要学习10 分钟前
Linux基础篇、第一章_01_3安装虚拟机手动安装部署Ubuntu22.04服务器
linux·运维·云计算
jsons120 分钟前
Cliosoft安装
linux·运维·服务器
后院那片海29 分钟前
Nginx核心功能
linux·服务器·nginx
运维实习生~33 分钟前
Promtail+Loki+Grafana监控日志
linux·grafana
深鱼~43 分钟前
【Redis】缓存|缓存的更新策略|内存淘汰策略|缓存预热、缓存穿透、缓存雪崩和缓存击穿
数据库·redis·缓存
nicepainkiller44 分钟前
redis高阶2 高性能
数据库·redis·缓存
Algorithm15761 小时前
Redis的ZSet对象底层原理——跳表
数据库·redis·缓存
IT北辰1 小时前
Python数据处理:文件的自动化重命名与整合
数据库·python·自动化