当前位置: 首页 > news >正文

力扣刷题Days20-151. 反转字符串中的单词(js)

目录

1,题目

2,代码

1,利用js函数

2,双指针

3,双指针加队列

3,学习与总结

1,正则表达式 / \s+ /:

2,结合使用 split 和正则表达式:


1,题目

给你一个字符串 s ,请你反转字符串中 单词 的顺序。

单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。

返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。

注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。

重点看例3的效果

2,代码

1,利用js函数

/*** @param {string} s* @return {string}*/
var reverseWords = function(s) {return s.trim().split(/\s+/).reverse().join(' ');
};

2,双指针

字符串的遍历

字符串函数 substring

/*** @param {string} s* @return {string}*/
var reverseWords = function(s) {// 去掉收尾的空格s=s.trim();let i = s.length -1,j=i;let res = [];while(i >= 0){while(i>=0&&s[i]!= ' ') i--;// substring有返回值 且前闭后开res.push(s.substring(i+1,j+1));while(i >=0 && s[i] === ' ') i--;j=i;}return res.join(' ').trim();
};

3,双指针加队列

/*** @param {string} s* @return {string}*/
var reverseWords = function(s) {// 去掉收尾的空格s=s.trim();let i = 0,j=i;let res = [];while(i < s.length ){while(i < s.length  && s[i]!= ' ') i++;// substring有返回值 且前闭后开res.unshift(s.substring(j,i));while(i < s.length && s[i] === ' ') i++;j=i;}return res.join(' ').trim();
};

3,学习与总结

1,正则表达式 / \s+ /

  • 正则表达式是一种文本模式,用于匹配字符串中的字符组合。在这个表达式中,\s+ 有特殊的含义。
  • \s:代表空白字符的匹配项,包括空格、制表符(tab)、换行符等。
  • +:紧跟在 \s 后面,表示匹配一个或多个前面的字符。因此,\s+ 匹配一系列的一个或多个连续空白字符。

2,结合使用 split 和正则表达式

  • 当将正则表达式 /\s+/ 作为 split 方法的参数时,意味着字符串将按照一个或多个连续空白字符来分割。
  • 这意味着无论是空格、制表符、还是换行符,只要是连续出现的空白字符,都将被用作分割点。分割后,原字符串就被分解成多个部分,每个部分是原字符串中由非空白字符组成的序列,这些部分被存储在一个数组中。

字符串操作函数有待更加熟练!!!

重点在于 函数的利用和方法的优化。

http://www.lryc.cn/news/320125.html

相关文章:

  • 基于grafana+elk等开源组件的 云服务监控大屏架构
  • PWM驱动舵机
  • 处理Centos 7 中buff/cache高的问题
  • 【送书福利第五期】:ARM汇编与逆向工程
  • STM32的USART能否支持9位数据格式话题
  • OLAP与数据仓库和数据湖
  • zookeeper快速入门三:zookeeper的基本操作
  • oracle 19c打补丁到19.14
  • Spring Boot(六十九):利用Alibaba Druid对数据库密码进行加密
  • 51单片机—DS18B20温度传感器
  • Monorepo 解决方案 — 基于 Bazel 的 Xcode 性能优化实践
  • Unity触发器的使用
  • docker compose部署rabbitmq集群
  • 数据结构/C++:红黑树
  • 【LabVIEW FPGA入门】浮点数类型支持
  • ffmpeg 滤镜实现不同采样率多音频混音
  • UserTCP 传输数据时如何保证数据的可靠性?并以LabVIEW为例进行说明
  • 基于粒子群算法的分布式电源配电网重构优化matlab仿真
  • mysql提权总结(自学)
  • [数据集][目标检测]铝片表面工业缺陷检测数据集VOC+YOLO格式400张4类别
  • 晶体管-二极管三极管MOS管选型参数总结
  • ssh命令——安全远程连接Linux服务器
  • Ansible非标记语言YAML与任务剧本Playbook
  • WPF监控平台(科技大屏)[一]
  • HTML详细教程
  • 【excel】常用的50个函数与基础操作(统计函数)
  • MATLAB中的cell数组和结构体
  • Python深度学习之路:TensorFlow与PyTorch对比【第140篇—Python实现】
  • Unity中UGUI中的PSD导入工具的原理和作用
  • 删除 Oracle 软件和数据库教程