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

LeetCode 刷题系列 -- 151. 反转字符串中的单词

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

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

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

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

示例 1:

输入:s = "the sky is blue"
输出:"blue is sky the"

示例 2:

输入:s = " hello world "

输出:"world hello"

解释:反转后的字符串中不能存在前导空格和尾随空格。

示例 3:

输入:s = "a good example"

输出:"example good a"

解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。

提示:

  • 1 <= s.length <= 104

  • s 包含英文大小写字母、数字和空格 ' '

  • s 中 至少存在一个 单词

151. 反转字符串中的单词 - 力扣(Leetcode)

思路

1. 将整个字符串反转
2. 分别将每个单词反转

c++

class Solution {
public:void reverse(string& s, int i, int j) {int left = i;int right = j;while(left < right) {char tmp = s[left];s[left] = s[right];s[right] = tmp;left++;right--;}}string reverseWords(string s) {string result = "";reverse(s, 0, s.size()-1);for(int i=0; i<s.size(); i++) {while(i < s.size() && s[i] == ' ') {i++;}int start = i;while(i < s.size() && s[i] != ' ') {i++;}int end = i-1;reverse(s, start, end);result += (s.substr(start, end-start+1)+" ");}// 去除字符串两端空格int right = result.size() - 1;while(result[right] == ' ') {right--;}return result.substr(0, right+1);}
};

相关文章:

LeetCode 刷题系列 -- 151. 反转字符串中的单词

给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。注意&#xff1a;输入字符串 s中可能会存在前导空格、尾随空格或…...

二十二、Gtk4-ListView

GTK 4添加了新的列表对象GtkListView、GtkGridView和GtkColumnView。这个新特性在Gtk API参考—列表小构件概述中有描述。 GTK 4还有其他实现列表的方法。它们是GtkListBox和GtkTreeView&#xff0c;它们是从GTK 3接管的。在Gtk开发博客中有一篇关于Matthias Clasen所写的列表…...

ASP.NET Core3.1实战教程---基于Jquery单文件上传

这个必须记录一下费劲啊&#xff01;废了我2天的时间&#xff0c;昔日的net快速已经没落....就文件上传都这么费劲。 先说下要求&#xff08;在线apk文件上传实现手机端整包更新&#xff09;&#xff1a; 1、为了简化需求文件上传和数据提交分开执行 2、选完文件后按钮变成上…...

10 卷积神经网络CNN(基础篇)

文章目录全连接CNN过程卷积过程下采样过程全连接层卷积原理单通道卷积多通道卷积改进多通道总结以及课程代码卷积改进PaddingStride下采样过程大池化层&#xff08;Max Pooling&#xff09;简单卷积神经网络的实现课程代码本篇课程来源&#xff1a; 链接部分文本来源参考&#…...

Windows下LuaBridge2.8的环境配置及简单应用

Windows下LuaBridge2.8的环境配置及简单应用 LuaBridge2.8下载链接&#xff1a; https://github.com/vinniefalco/LuaBridge/tags 关于Lua的环境配置可参考以下链接&#xff08;这里不做简述&#xff09;&#xff1a; https://ufgnix0802.blog.csdn.net/article/details/125341…...

每天10个前端小知识 【Day 10】

前端面试基础知识题 1. es5 中的类和es6中的class有什么区别&#xff1f; 在es5中主要是通过构造函数方式和原型方式来定义一个类&#xff0c;在es6中我们可以通过class来定义类。 class类必须new调用&#xff0c;不能直接执行。 class类执行的话会报错&#xff0c;而es5中…...

【LeetCode】1223. 掷骰子模拟

1223. 掷骰子模拟 题目描述 有一个骰子模拟器会每次投掷的时候生成一个 1 到 6 的随机数。 不过我们在使用它时有个约束&#xff0c;就是使得投掷骰子时&#xff0c;连续 掷出数字 i 的次数不能超过 rollMax[i]&#xff08;i 从 1 开始编号&#xff09;。 现在&#xff0c;…...

SPSS数据分析软件的安装与介绍(附网盘链接)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…...

2022年38女神节大促美妆、珠宝、母婴、保健电商数据回顾

近期&#xff0c;我们陆续接收到了品牌商家朋友们对于2022年女神节大促期间部分品类的数据需求&#xff0c;希望能对今年的大促活动有一个更宏观的认知、更精准的预测&#xff0c;从而拿到更好的数据效果。 为此&#xff0c;在距离大促开启一个月的备货阶段&#xff0c;鲸参谋决…...

Java笔记-线程同步

目录线程的同步---以三个窗口售票100张为例方式一&#xff1a;同步代码块方式二&#xff1a;同步方法使用同步机制的作用&#xff1a;线程的同步—以三个窗口售票100张为例 &#xff08;1&#xff09;问题&#xff1a;卖票的过程出现重票和错票 &#xff08;2&#xff09;原因…...

通过python 调用OpenAI api_key提交问题解答

通过python 调用OpenAI api_key提交问题解答✨可以通过网页版的jupyter notebook调用&#xff0c;也可以通过spyder窗口等IDE窗口. &#x1f33c;通过python 调用OpenAI api_key接口&#xff0c;可以避免国内网页不能访问的问题。前提是需要自己已经注册了OpenAI帐号&#xff…...

图表控件LightningChart .NET再破世界纪录,支持实时可视化 1 万亿个数据点

LightningChart.NET SDK 是一款高性能数据可视化插件工具&#xff0c;由数据可视化软件组件和工具类组成&#xff0c;可支持基于 Windows 的用户界面框架&#xff08;Windows Presentation Foundation&#xff09;、Windows 通用应用平台&#xff08;Universal Windows Platfor…...

什么是响应性?

响应性&#xff1a; 这个术语在今天的各种编程讨论中经常出现&#xff0c;但人们说它的时候究竟是想表达什么意思呢&#xff1f;本质上&#xff0c;响应性是一种可以使我们声明式地处理变化的编程范式。一个经常被拿来当作典型例子的用例即是 Excel 表格&#xff1a; 这里单元…...

黑马】后台管理176-183

一、新建订单管理的分支二、创建一个订单管理的vue文件进行组件页面的路由配置import Order from ../components/order/Order.vue{path:/orders,component:Order},注意上面的components不要忘记少加一个s&#xff01;三&#xff0c;获取后台数据面包屑导航粘贴过来文本输入框&a…...

Typescript - 类型守卫(typeof / in / instanceof / 自定义类型保护的类型谓词)通俗易懂详细教程

前言 类型守卫用于获取变量类型信息&#xff0c;通常使用在条件块语句中。类型守卫是返回布尔值的常规函数&#xff0c;接受一个类型并告诉 TypeScript 是否可以缩小到更具体的类型。类型守卫具有唯一的属性&#xff0c;可以确保测试的值返回的是布尔值类型。 TypeScript 使用了…...

6.8 左特征向量

特征值很复杂&#xff0c;除了普通的特征向量外&#xff0c;还有左特征向量和广义特征向量。先说说比较容易的左特征向量吧。它是这样定义的&#xff0c;AAA是一个矩阵&#xff0c;λ\lambdaλ是它的一个特征值&#xff0c;下面的向量yyy就是矩阵关于特征值的左特征向量left ei…...

10个自动化测试框架,测试工程师用起来

软件行业正迈向自主、快速、高效的未来。为了跟上这个高速前进的生态系统的步伐&#xff0c;必须加快应用程序的交付时间&#xff0c;但不能以牺牲质量为代价。快速实现质量是必要的&#xff0c;因此质量保证得到了很多关注。为了满足卓越的质量和更快的上市时间的需求&#xf…...

城市C友会【官方牵头更多的线下交流的机会,你有怎样的期待?】

文章目录&#x1f31f; 课前小差&#x1f31f; 长沙线下&#x1f31f; C友会你也可以是组织者&#x1f31f; 线下交流提升价值&#x1f31f; 官方与抖音合作&#xff1f;&#x1f31f; 23年动起来&#x1f31f; 写在最后&#x1f31f; 课前小差 哈喽&#xff0c;大家好&#x…...

CSDN 编程竞赛二十七期题解

竞赛总览 CSDN 编程竞赛二十七期&#xff1a;比赛详情 (csdn.net) 四道题都不难&#xff0c;本来十分钟内就可以解决&#xff0c;但是这次竞赛bug比较多&#xff0c;体验不是很好。 竞赛题解 题目1、幸运数字 小艺定义一个幸运数字的标准包含三条&#xff1a;1、仅包含4或…...

RMI攻击中的ServerClient相互攻击反制

前言 前文中&#xff0c;我们分析了攻击Registry的两种方式&#xff0c;这里我们接着前面的内容&#xff0c;分析Server和Client的相互攻击方式。 Attacked Server Attacked By Client 首先我们搭建个示例&#xff0c;这里直接注册端和服务端放置在一起。 package pers.rm…...

AI代理如何通过MCP协议实现DeFi自动化操作与策略执行

1. 项目概述&#xff1a;当DeFi遇上AI代理&#xff0c;Robocular/defi-mcp的诞生最近在捣鼓链上自动化策略和AI代理&#xff0c;发现了一个挺有意思的项目——Robocular/defi-mcp。简单来说&#xff0c;这是一个专门为AI代理&#xff08;特别是那些基于MCP&#xff0c;也就是Mo…...

AI治理实战:从公平性、可解释性到MLOps全流程落地

1. 项目概述与核心价值最近在整理开源项目时&#xff0c;发现了一个名为“AI_governance”的仓库&#xff0c;作者是bhavya7995。这个标题立刻引起了我的兴趣。在AI技术飞速渗透到各行各业&#xff0c;从代码生成到内容创作&#xff0c;从自动驾驶到医疗诊断的今天&#xff0c;…...

半导体产业模式之争:IDM与代工在先进制程下的博弈与融合

1. 从代工模式回归IDM&#xff1f;一场半导体产业路线的深度思辨最近在翻看一些老资料&#xff0c;2012年EE Times上的一篇旧文又把我拉回了那个充满争论的十字路口。文章标题直指核心&#xff1a;“代工模式正在向IDM模式逆转吗&#xff1f;” 当时&#xff0c;英特尔的技术大…...

ARM NEON SIMD指令集:VMAX与VMIN深度解析与优化

1. ARM SIMD指令集概述在ARM架构中&#xff0c;SIMD&#xff08;Single Instruction Multiple Data&#xff09;技术通过NEON协处理器实现&#xff0c;它提供了128位的向量寄存器&#xff08;Q0-Q15&#xff09;和对应的64位视图&#xff08;D0-D31&#xff09;。这些寄存器可以…...

GDB调试实战:如何像本地变量一样轻松查看函数参数和结构体成员(附常用命令清单)

GDB调试实战&#xff1a;像本地变量一样高效查看函数参数与复杂数据结构 调试大型C/C项目时&#xff0c;最令人头疼的莫过于面对层层嵌套的函数调用和包含数十个成员的结构体。传统调试方式往往让我们陷入内存地址的泥潭&#xff0c;而GDB提供的诸多高级功能可以彻底改变这一局…...

Linux驱动开发避坑指南:手把手教你实现三种mmap内存映射(附完整代码)

Linux驱动开发实战&#xff1a;三种mmap内存映射方案深度解析与性能对比 在嵌入式系统和图形处理领域&#xff0c;直接访问内核内存的需求日益增长。想象一下这样的场景&#xff1a;你正在开发一个视频处理驱动&#xff0c;需要将摄像头采集的高清帧数据传输到用户空间进行实时…...

2026国产SCARA机器人品牌深度横评:高精度、零件分拣多维度对比

SCARA机器人作为工业自动化领域的重要装备&#xff0c;凭借其高速、高精度、易集成等优势&#xff0c;广泛应用于3C电子、医疗器械、新能源等精密装配场景。随着国产机器人品牌的崛起&#xff0c;市场竞争格局正在发生深刻变化。本文基于公开技术参数、市场应用数据及行业调研&…...

C#怎么使用LINQ OrderBy排序 C#如何用LINQ对集合按多个字段进行升序降序排列【语法】

OrderBy必须唯一且首置&#xff0c;后续字段用ThenBy/ThenByDescending链式调用&#xff1b;null默认排最前&#xff08;升序&#xff09;或最后&#xff08;降序&#xff09;&#xff1b;延迟执行&#xff0c;避免重复ToList。OrderBy 和 ThenBy 怎么连用才对多个字段排序不能…...

AI智能体协同框架agentsync:事件驱动与状态同步实战解析

1. 项目概述与核心价值最近在探索AI智能体&#xff08;Agent&#xff09;的协同工作流时&#xff0c;我遇到了一个非常有意思的项目&#xff1a;obielin/agentsync。乍一看这个名字&#xff0c;你可能会联想到“代理同步”&#xff0c;但它的内涵远不止于此。简单来说&#xff…...

收藏!AI时代程序员薪资分化严重?3个月转型AI工程,求职成功率提升60%!

文章指出AI时代程序员薪资两极分化&#xff0c;顶级AI人才年薪破亿&#xff0c;而普通开发者求职困难。文章强调这不是行业寒冬&#xff0c;而是结构性变革。建议程序员提升AI工程能力&#xff0c;转型AI工程师&#xff0c;成功案例显示求职成功率提升60%&#xff0c;薪资涨幅3…...