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

news2024/9/20 1:19:35

目录

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.coloradmin.cn/o/1533346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据集】全球土地利用数据集:GRIPCmap

GRIPCmap数据概述 GRIPC&#xff08;Global rain-fed, irrigated, and paddy croplands&#xff09;论文介绍数据下载 参考 GRIPC&#xff08;Global rain-fed, irrigated, and paddy croplands&#xff09; 论文介绍 数据下载 下载地址-Index of /public/friedl/GRIPCmap/ …

mysql面试题以及答案

1 基础 1.1、MySQL有哪些数据库类型&#xff1f; 数值类型 有包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT&#xff0c;分别表示 1 字节、2 字节、3 字节、4 字节、8 字节的整数类型。 1&#xff09;任何整数类型都可以加上 UNSIGNED 属性&#xff0c;表示无符号整数。 …

做外贸soho 是最好的选择吗

前几日&#xff0c;见到一个创业的朋友又去找了一个单位上班&#xff0c;询问其原因&#xff0c;对方说不是没有客户&#xff0c;也不是没有回头客。 只是比起创业更重要的是一家老小的生存问题&#xff0c;他说家里有两个要吃奶粉的孩子&#xff0c;老婆也不能上班&#xff0…

【pycharm】作为Array查看出现数据无法显示问题(已解决)

【pycharm】作为Array查看出现数据无法显示问题&#xff08;已解决&#xff09; 当我们在调试代码的时候&#xff0c;需要对某个变量进行查看&#xff0c;就如同在matlab中&#xff0c;我们可以直接在工作区对某个变量进行双击查看矩阵变量的具体数值 在这里我遇到一个问题&am…

第十二届蓝桥杯省赛CC++ 研究生组-货物摆放

还是整数分解问题,注意n本身也是约数 #include <iostream> int main(){printf("2430");return 0; }#include <iostream> #include<cmath> #include<algorithm> using namespace std; typedef long long ll; const ll n 2021041820210418LL…

深度学习之本地部署大模型ChatGLM3-6B【大模型】【报错】

文章目录 0.前言1.模型下载2.配置环境2.1 下载项目文件2.2 配置环境 3.开始推理4.总结 0.前言 本博客将介绍ChatGLM3-6B大模型在Ubuntu上的本地部署教程 1.模型下载 由于毛毛张的服务器服务无法科学上网&#xff0c;所以模型的相关文件必须现在本地下载好&#xff0c;再上传到…

混合电压供电系统 3V/5V 器件 I/O 口互连

混合电压供电系统 3V/5V 器件 I/O 口互连

五、分支结构

一、程序的组织结构 无论程序是大是小&#xff0c;都可以用顺序结构、选择结构和循环结构表示 二、单分支结构 单分支结构&#xff1a;如果表达式的值是True就执行代码&#xff0c;如果表达式的值是False就跳过语句执行后面语句 ageint(input(请输入你的年龄&#xff1a;)) i…

【蓝桥杯嵌入式】四、各种外设驱动(十)USART+DMA通信方式和串口通信协议的设计与使用

温馨提示&#xff1a;本文不会重复之前提到的内容&#xff0c;如需查看&#xff0c;请参考附录 【蓝桥杯嵌入式】附录 目录 重点提炼&#xff1a; 一、需求分析 1、需要的外设资源分析&#xff1a; 2、外设具体分析&#xff1a; CubeMX配置中&#xff0c;我们需要改动的参…

【媒体宣传】企业活动发布会邀请媒体报道的好处与优势?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 企业活动发布会邀请媒体报道具有多种好处与优势&#xff0c;这些都有助于提升企业的知名度、形象和影响力。以下是一些主要的好处与优势&#xff1a; 提升品牌知名度&#xff1a;媒体报…

金融知识分享系列之:支撑阻力

金融知识分享系列之&#xff1a;支撑阻力 一、支撑阻力原理二、支撑阻力作用1.识别市场资金的预期2.作为入场和平仓的重要参考 三、寻找支撑阻力四、延伸思考五、支撑阻力总结 一、支撑阻力原理 支撑阻力核心要素&#xff1a; 锚定效应订单驱动 支撑阻力原理&#xff1a; 市…

Java代码基础算法练习-求给定3个数, 进行从小到大排序-2024.03.20

任务描述&#xff1a; 输入三个整数 x,y,z(0<x<1000&#xff0c;0<y<1000&#xff0c;0<z<1000)&#xff0c;请把这三个数由小到大输出。 任务要求&#xff1a; 代码示例&#xff1a; package march0317_0331;import java.util.Scanner;public class m24…

JVM第八讲:GC - Java 垃圾回收基础知识

GC - Java 垃圾回收基础知识 本文是JVM第八讲&#xff0c; Java 垃圾回收基础知识。垃圾收集主要是针对堆和方法区进行&#xff1b;程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的&#xff0c;只存在于线程的生命周期内&#xff0c;线程结束之后也会消失&#xff0…

外包干了14天,技术退步明显。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;2019年我通过校招踏入了成都一家软件公司&#xff0c;开始了我的职业生涯。那时的我&#xff0c;满怀热血和憧憬&#xff0c;期待着在这个行业中闯出一片天地。然而&#xff0c;随着时间的推移&#xff0c;我发现自己逐渐陷入…

HarmonyOS 应用开发案例

本帖下方集中了HarmonyOS Next应用开发时&#xff0c;会遇到的常见应用案例。后续会持续更新大量案例&#xff0c;帮助开发者快速学习。欢迎感兴趣的同学加入Q&#xff1a;454901491 72.手写绘制及保存图片案例&#xff08;0319更新&#xff09;&#xff08;点此查看源码实现&…

【spring】@ConditionalOnResource注解学习

ConditionalOnResource 介绍 ConditionalOnResource 是Spring框架中的一个条件化注解&#xff0c;它允许你根据类路径中是否存在指定的资源来决定是否加载特定的Bean定义或配置类。这个注解可以用于类级别或方法级别。 具体Conditional使用请看这篇文章【spring】Conditional…

在线培训考试系统的作用分析

随着互联网技术的迅猛发展&#xff0c;在线培训考试系统在提高教育培训效果方面发挥着重要的作用。该系统充分利用了信息技术的优势&#xff0c;为教育培训提供了新的方式和工具&#xff0c;促进学习者的主动参与和持续学习&#xff0c;提升培训效果。 自主学习机会 在线培训考…

前端项目,个人笔记(六)【无限滚动 + 拦截器】

目录 1、无限滚动 2、使用pinia进行用户数据持久化 3、完善个人笔记三中的拦截器 请求拦截器&#xff1a; 响应拦截器&#xff1a; 1、无限滚动 使用elementplus中提供的&#xff1a; 代码&#xff1a; <div class"body" v-infinite-scroll"load"…

8.测试教程-自动化测试selenium-3

文章目录 1.unittest框架解析2.批量执行脚本2.1构建测试套件2.2用例的执行顺序2.3忽略用例执行 3.unittest断言4.HTML报告生成5.异常捕捉与错误截图6.数据驱动 大家好&#xff0c;我是晓星航。今天为大家带来的是 自动化测试selenium第三节 相关的讲解&#xff01;&#x1f600…

[C/C++] -- 链表

C/C 中链表是一种常见的数据结构&#xff0c;用于存储和组织数据。链表由节点&#xff08;Node&#xff09;组成&#xff0c;每个节点包含数据和指向下一个节点的指针。链表相对于数组的优势在于可以动态地分配内存&#xff0c;插入和删除操作效率高&#xff0c;但访问元素的随…