剑指offer 65. 翻转单词顺序

news/2024/5/20 9:44:00/文章来源:https://blog.csdn.net/Newin2020/article/details/127325844

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📚专栏地址:剑指offer系列题解
📝原题地址:题目地址
📣专栏定位:为找工作的小伙伴整理常考算法题解,祝大家都能成功上岸!
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

题目描述

输入一个英文句子,单词之间用一个空格隔开,且句首和句尾没有多余空格

翻转句子中单词的顺序,但单词内字符的顺序不变。

为简单起见,标点符号和普通字母一样处理。

例如输入字符串"I am a student.",则输出"student. a am I"

数据范围

输入字符串长度 [0,1000]。

样例

输入:"I am a student."输出:"student. a am I"

方法一:双指针 O(n)

具体思路如下:

  1. 用两个指针来遍历字符串 s ,截取出每个单词,单词所在区间为 [i,j) ,然后将该单词反转。
  2. 当所有单词反转完之后,再反转整个字符串,这样得到的效果就是最终答案。

我们拿题目样例进行举例,假设现在要翻转字符串 I am a student. 的单词顺序:

第一步: 找到第一个单词,并翻转。

在这里插入图片描述

第二步: 找到第二个单词,并翻转。

在这里插入图片描述

第三步: 找到第三个单词,并翻转。

在这里插入图片描述

第四步: 找到第四个单词,并翻转,注意这里的单词相当于一个字符串,其中是可以包含 . 号的。

在这里插入图片描述

第五步: 所有单词都已经翻转完,最后对整个字符串进行翻转,得到的结果就是最终答案。

在这里插入图片描述

class Solution {
public:string reverseWords(string s) {for (int i = 0; i < s.size(); i++){int j = i;while (j < s.size() && s[j] != ' ')   j++;reverse(s.begin() + i, s.begin() + j);i = j;}reverse(s.begin(), s.end());return s;}
};

欢迎大家在评论区交流~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_23329.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vSphere 8 (ESXi 8.0.0)

VMware 最新发布了vSphere 8 VMware vSphere 8.0 Release Notes Notes: 请注意Release Notes中提到的被抛弃支持的硬件。 如果只是旧的CPU不被支持了&#xff0c;可以在安装ESXi启动时ShiftO 后面加上空格allowLegacyCPUtrue 第一时间在我的SuperMicro E302-9D上安装了vSphe…

酒店企业私域流量运营方案来了

在新冠肺炎疫情的冲击下&#xff0c;酒店行业客流量明显下滑&#xff0c;部分酒店的出租率甚至已经下降到10%以下&#xff0c;企业亟须找到和用户直接互动并转化有效渠道&#xff0c;私域显然是一个开发成本较低且可帮助企业精准触达的方式。 为了帮助酒店企业提升私域运营能力…

动词时态=3.现在时态和过去时态构成详解

现在时态构成详解 一般现在时态 最容易构成的时态,直接加动词原形(字典当中显示的词条)就可以 第三人称"单数"的话需要加s这是最容易出错的时态;容易将 现在的时间,和一般的状态;弄混 其实这个我觉得还好,通过之前的理解例如第一句:并非是我正在吃胡萝卜,而…

Android Studio构建可运行的‘java-library’程序库

1、新建模块 2、导入或新建代码 ... 3、build.gradle构建 plugins {id java-library }java {sourceCompatibility JavaVersion.VERSION_1_7targetCompatibility JavaVersion.VERSION_1_7 }jar {manifest { //运行时main函数的主类attributes Main-Class: com.XXX.XXX.XXXC…

微信小程序商城开发的流程

今天珍奶bb给大家简单唠唠微信小程序商城开发的流程&#xff1f; 在唠微信小程序商城制作流程前&#xff0c;先给大家科普一下当前的实体经济环境是如何的&#xff1f;制作一个微信小程序商城是否存在它的必要性。不用看具体数据&#xff0c;就直接看我们身边&#xff0c;我们…

springboot+springcloudgateway+nacos+sleuth+zipkin+mysql

zipkin服务端安装 1.下载zipkin的Jar包 https://search.maven.org/remote_content?gio.zipkin.java&azipkin-server&vLATEST&cexec windows 命令行cd到zipkin目录下 C:\zipkin 启动命令&#xff1a;java -jar zipkin-server-2.12.9-exec.jar 打开浏览器&…

如何在贵金属白银现货走势分析中积累经验?

贵金属白银现货走势分析中&#xff0c;只有一种东西是只可意会不可言传的&#xff0c;那就是经验。很多人会有这样的经历&#xff0c;为什么大家学习的是同样的方法&#xff0c; 他能够赚钱&#xff0c;而我不能够赚钱呢&#xff1f;这其实就是经验所致。在贵金属白银现货走势分…

猿创征文|我这样看国产数据库TBase

文章目录一、云原生数据库二、功能介绍三、适用场景一、云原生数据库 随着云业务形态的诞生&#xff0c;这两年在传统的数据库架构基础上&#xff0c;产生一种比较流行的新架构–云原生架构&#xff0c;日志即数据库。 它会把数据库的业务逻辑沉到底层的存储节点里面去&…

操作系统导论习题解答(41. Fast File System (FFS))

Locality and The Fast File System "old UNIX file system" looked like this:super block(S): contains information about the entire file system inode region: contains all the inodes for the file system data region: contains user data 1. The Problem…

UE4 /UE5 PC/安卓优化

一、概述 UE4/UE5场景中的资源越多&#xff0c;消耗的内存就越大&#xff0c;就会越卡顿。这里教大家如何进行场景优化&#xff0c;来减少内存&#xff0c;使得场景更加流畅。 二、模型优化 2.1、使用3Dmax或者Maya制作的模型&#xff0c;面数最好不要太多&#xff0c;虽然UE4…

国内首家车身区域控制器量产 电子电气架构进入中央集中式3.0阶段

从功能独立的分布式架构&#xff0c;到功能集成的域控制架构&#xff0c;如今整车电子电气架构正在加速跨入集中式电子电气架构3.0阶段。 在中央集中式架构中&#xff0c;算力逐渐向中央集中&#xff0c;多个域控制器继续融合最终形成1个中央计算平台N个区域控制器的终极布局&…

操作系统导论习题解答(29. Locked Data Structures)

Lock-based Concurrent Data Structures 带着问题:给定一个数据结构,如何给其添加锁使其拥有正确性和高效性? 1. Concurrent Counters 1.1 Simple But Not Scalable上述代码满足了正确性,但是对于性能,我们一无所知。为了了解性能优劣,做了一个基准测试,如下所示(preci…

零时科技 || Rabby Swap合约遭受攻击事件详解

0x1 背景 2022年10月12日&#xff0c;Rabby Swap合约中存在疑似任意用户资产转移漏洞。Rabby Swap官方表示&#xff0c;如果有使用&#xff0c;请撤销所有链上所有现有的 Rabby Swap 批准。对于没有使用过 Swap 的人来说&#xff0c;钱包安全且不受影响。零时科技安全团队及时…

RxJS - interval、take制作倒计时效果

获取验证码按钮功能&#xff1a; 引入所需的RxJS的方法&#xff0c;定义变量&#xff1a; import { interval } from rxjs; import { take } from rxjs/operators; buttonText 获取验证码; isDisabled false; // 按钮是否灰显 seconds 60; // 倒计时开始时间编写点击按钮…

Typora+PicGo+七牛云实现图片上传存储

1. 注册七牛云 首先&#xff0c;需要在七牛云官网注册账号并进行实名认证&#xff0c;注册----->申请个人账户----->填写注册信息----->实名认证&#xff0c;基本上就是这个步骤&#xff0c;不做细说&#xff0c;相信难不到聪明的你 2. 配置存储空间 2.1 新建空间 …

实训十二:路由器静态路由配置

一、 实验目的 理解路由表掌握静态路由的配置 二、 应用环境 在小规模环境里&#xff0c;静态路由是最佳的选择静态路由开销小&#xff0c;但不灵活&#xff0c;适用于相对稳定的网络 三、 实验设备 1、DCR-2655 三台 2、网线&#xff08;交叉线&#xff09; 四条 四、 实验拓扑…

操作系统导论习题解答(16. Segmentation)

Segmentation 1. Segmentation: Generalized Base/Bounds我们可以看一下(Figure 16.1),尽管每个CPU都有一对硬件寄存器(base register和bounds register),但是还是不可避免的会产生内存浪费(阴影部分表示未被使用)。为了解决这个问题,就引入了segmentation:既然每一…

植物大战 string——C++

“朝朝暮暮” 猛戳订阅&#x1f341;&#x1f341; &#x1f449; [C详解专栏] &#x1f448; &#x1f341;&#x1f341; 这里是目录一、编码1.ASCII码2.unicode编码3.gbk二、string的使用1.构造函数无参构造函数string()常量字符串构造string(const char* s)拷贝构造string(…

风控场景中值得收藏的10个经典算法模型的实操与应用

在风控领域中&#xff0c;我们也经常接触到回归模型场景&#xff0c;常见的例如产品额度定价、客户价值评估、信息指数分析等。针对回归模型&#xff0c;建模的目标变量是连续型&#xff0c;这是在特征数据上与分类模型最明显的区别。在模型具体实现的过程中&#xff0c;采用的…

Linux 学习 -- shell中字串的一些用法

1、简单用法&#xff1a;返回变量的内容 命令 &#xff1a; ${变量} 或者 $变量 2、返回变量的长度 命令&#xff1a;${#变量} // 返回变量长度&#xff0c;字符长度 3、返回变量start数值之后的字符,包括start 命令&#xff1a;${变量:start} 4、提取start之…