反转字符串中的单词-力扣
此题将问题分为三步进行解决:
- 第一步,删除字符串中多余的空格,removeSpaces函数中删除所有的空格,并手动在每个单词后添加一个空格,最后重构字符串s
- 第二步,将整个字符串反转
- 第三步,对反转后的字符串,遍历每个单词,将单词再次反转
class Solution {
public:string reverseWords(string s) {removeSpaces(s);reverseString(s);int left = 0;int right = 0;for(int i = 0; i < s.size(); i++){if(s[i] == ' '){int right = i - 1;while(left < right){int temp = s[left];s[left] = s[right];s[right] = temp;left++;right--;}left = i + 1;}if(i == s.size() - 1){int right = i;while(left < right){int temp = s[left];s[left] = s[right];s[right] = temp;left++;right--;} }}return s;}void removeSpaces(string& s){int slowindex = 0;int fastindex = 0;for(fastindex; fastindex < s.size(); fastindex++){if(s[fastindex] != ' '){if(slowindex != 0){s[slowindex++] = ' ';}while(fastindex < s.size() && s[fastindex] != ' '){s[slowindex++] = s[fastindex++];}}}s.resize(slowindex);}void reverseString(string& s){int left = 0;int right = s.size() - 1;while(left < right){int temp = s[left];s[left] = s[right];s[right] = temp;left++;right--;}}
};
代码随想录在处理第三步时,for循环的结束条件是 i <= s.size(), 这样就不用单独对最后一个单词作单独处理,服用一套交换代码。
string reverseWords(string s) {removeExtraSpaces(s); //去除多余空格,保证单词之间之只有一个空格,且字符串首尾没空格。reverse(s, 0, s.size() - 1);int start = 0; //removeExtraSpaces后保证第一个单词的开始下标一定是0。for (int i = 0; i <= s.size(); ++i) {if (i == s.size() || s[i] == ' ') { //到达空格或者串尾,说明一个单词结束。进行翻转。reverse(s, start, i - 1); //翻转,注意是左闭右闭 []的翻转。start = i + 1; //更新下一个单词的开始下标start}}return s;}
相关文章:
反转字符串中的单词-力扣
此题将问题分为三步进行解决: 第一步,删除字符串中多余的空格,removeSpaces函数中删除所有的空格,并手动在每个单词后添加一个空格,最后重构字符串s第二步,将整个字符串反转第三步,对反转后的字…...
Kotlin 重写与重载
文章目录 重写(Override)重载(Overload) 重写(Override) 重写通常是指子类覆盖父类的属性或方法,通常会标记为override: open class Base {open val name "Base"open f…...
关于高版本 Plant Simulation 每次保存是 提示提交comm对话框的处理方法
关于高版本 Plant Simulation 每次保存是 提示提交comm对话框的处理方法 如下图 将model saving history 修改为None即可 关于AutoCAD 2022 丢失模板库的问题 从新从以下地址打开即可: D:\Program Files\Autodesk\AutoCAD 2022\UserDataCache\zh-cn\Template...
C语言之旅:探索单链表
目录 一、前言 二、实现链表的功能: 打印 创建节点 尾插 尾删 头插 头删 查找 在指定位置之前插入数据 指定位置删除 在指定位置之后插入数据 打印 销毁 三、全部源码: 四、结语 一、前言 链表是一个强大且基础的数据结构。对于很多初…...
【安卓基础】-- 消息机制 Handler
目录 消息机制 Handler面试问题 消息机制 Handler 对handler机制的基本作用、用法、时序流程进行介绍,针对handler机制中的内存泄漏问题讲解:一篇读懂Android Handler机制 Android-Handler机制详解 全面解析 | Android之Handler机制 需要掌握的&#x…...
Optional 类
概述 到目前为止,臭名昭著的空指针异常是导致 Java 应用程序失败的最常见原因。以前,为了解决空指针异常,Google 公司著名的 Guava 项目引入了 Optional 类, Guava 通过使用检查空值的方式来防止代码污染,它鼓励程序员…...
自动微分技术在 AI for science 中的应用
本文简记我在学习自动微分相关技术时遇到的知识点。 反向传播和自动微分 以 NN 为代表的深度学习技术展现出了强大的参数拟合能力,人们通过堆叠固定的 layer 就能轻松设计出满足要求的参数拟合器。 例如,大部分图神经网络均基于消息传递的架构。在推理…...
ASM OMF single-file creation form 重命名
OMF下不能自动命名,需要重新命名的话:1 1. spfile 可以 create pfile from spfile 后再create spfile from pfile 2 redo? 3 datafile? Here are some details of the copy problem: a) You are not allowed to set the numbe…...
VGGNet
VGGNet CNN卷积网络的发展史 1. LetNet5(1998) 2. AlexNet(2012) 3. ZFNet(2013) 4. VGGNet(2014) 5. GoogLeNet(2014) 6. ResNet(2015) 7. DenseNet(2017) 8. EfficientNet(2019) 9. Vision Transformers(2020) 10. 自适应卷积网络(2021) 上面列出了发展到现在CNN的一些经典…...
SpringMVC:转发和重定向
1. 请求转发和重定向简介 参考该链接第9点 2. forward 返回下一个资源路径,请求转发固定格式:return "forward:资源路径"如 return "forward:/b" 此时为一次请求返回逻辑视图名称 返回逻辑视图不指定方式时都会默认使用请求转发in…...
961操作系统知识总结
部分图片可能无法显示,参考这里:https://zhuanlan.zhihu.com/p/701247894 961操作系统知识总结 一 操作系统概述 1. 操作系统的基本概念 重要操作系统类型:批处理操作系统(批量处理作业,单道批处理/多道批处理系统,用…...
电脑死机问题排查
情况描述:2024年6月2日下午16:04分电脑突然花屏死机,此情况之前遇到过三次,认为是腾讯会议录屏和系统自带录屏软件冲突导致。 报错信息:应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址…...
百度地图1
地图的基本操作 百度地图3.0文档 百度地图3.0实例中心 设置地图 centerAndZoom(center: Point, zoom: Number)设初始化地图,center类型为Point时,zoom必须赋值,范围3-19级, // 百度地图API功能var map new BMap.Map("map"); //…...
Ubuntu 24.04 LTS 安装Docker
1 更新软件包索引: sudo apt-get update 2 安装必要的软件包,以允许apt通过HTTPS使用仓库: sudo apt-get install apt-transport-https ca-certificates curl software-properties-common 3 添加Docker的官方GPG密钥: curl -fs…...
【架构设计】Java如何利用AOP实现幂等操作,防止客户端重复操作
1实现方案详解 在Java中,使用AOP(面向切面编程)来实现幂等操作是一个常见的做法,特别是当你想在不修改业务代码的情况下添加一些横切关注点(如日志、事务管理、安全性等)时。幂等操作指的是无论执行多少次,结果都是相同的操作。 为了利用AOP实现幂等操作以防止客户端重…...
笔记:美团的测试
0.先启动appium 1.编写代码 如下: from appium import webdriver from appium.webdriver.extensions.android.nativekey import AndroidKeydesired_caps {platformName: Android,platformVersion: 10,deviceName: :VOG_AL10,appPackage: com.sankuai.meituan,ap…...
【30天精通Prometheus:一站式监控实战指南】第15天:ipmi_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细
亲爱的读者们👋 欢迎加入【30天精通Prometheus】专栏!📚 在这里,我们将探索Prometheus的强大功能,并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。🚀 Prometheus是云原生和DevOps的…...
STM32F103借助ESP8266连接网络
ESP8266配置 STM32F103本身是不具备联网功能的,所以我们必须借助其他单片机来进行联网,然后让STM32与联网单片机通信,就可以实现STM32联网了。 本文借助的是ESP8266模块,其通过UART协议与STM32通信(http://t.csdnimg.c…...
Feature Manipulation for DDPM based Change Detection
基于去噪扩散模型的特征操作变化检测 文章提出了一种基于去噪扩散概率模型(DDPM)的特征操作变化检测方法。变化检测是计算机视觉中的经典任务,涉及分析不同时间捕获的图像对,以识别场景中的重要变化。现有基于扩散模型的方法主要…...
第十三届蓝桥杯国赛大学B组填空题(c++)
A.2022 动态规划 AC; #include<iostream> #define int long long using namespace std; int dp[2050][15]; //dp[i][j]:把数字i分解为j个不同的数的方法数 signed main(){dp[0][0]1;for(int i1;i<2022;i){for(int j1;j<10;j){//一种是已经分成j个数,这时只需每一个…...
揭秘C++多态:动态行为的核心奥秘
C 多态:面向对象的动态行为核心机制多态性是面向对象编程(OOP)的核心概念之一,它允许对象在运行时根据其实际类型表现出不同的行为。在C中,多态性主要通过虚函数(virtual functions)和继承机制实…...
抖音批量下载神器:告别手动保存,一键收藏创作者全部作品
抖音批量下载神器:告别手动保存,一键收藏创作者全部作品 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser f…...
Realistic Vision V5.1效果展示:这些惊艳的人像作品都是AI生成的
Realistic Vision V5.1效果展示:这些惊艳的人像作品都是AI生成的 1. 当AI画师遇上专业摄影师 你有没有见过这样的AI生成人像?皮肤纹理清晰到能看见毛细血管,发丝在阳光下呈现自然的半透明质感,眼神光的位置精准符合物理反射规律…...
Allegro PCB设计必备:3分钟搞定带钻孔数据的DXF文件导出(附常见错误排查)
Allegro PCB设计实战:高效导出带钻孔数据的DXF文件全攻略 在PCB设计领域,Allegro作为行业标杆工具,其文件输出质量直接关系到生产制造的准确性。特别是当设计需要与其他CAD系统协作或提交给PCB制造商时,DXF文件的完整性至关重要。…...
CoPaw个人助理深度体验:多通道对话+定时执行,解放双手的实用工具
CoPaw个人助理深度体验:多通道对话定时执行,解放双手的实用工具 1. CoPaw简介与核心功能 CoPaw是一款基于Qwen3-4B-Instruct-2507模型的个人助理型产品,由AgentScope团队开发。它最大的特点是能够部署在用户自己的环境中,实现数…...
算法模拟类题目解析
前言:最近开始偏系统的从简单到难一步步刷算法题,先从模拟题开始,下边附带题目与连接,感兴趣可刷刷也可看看我的思路。 一.字符串展开 链接:https://ac.nowcoder.com/acm/problem/16644 来源:牛客网 题意…...
11.0592MHz晶振在51单片机串口通信中的优势解析
1. 为什么11.0592MHz晶振成为单片机工程师的首选在嵌入式系统设计中,晶振的选择往往决定了整个系统的稳定性和精度。作为一名从事单片机开发多年的工程师,我发现11.0592MHz的晶振在51单片机项目中出现的频率异常高。这绝非偶然,而是由一系列精…...
CasADi实战:用Python搞定机器人路径规划中的数值优化问题(附IPOPT配置)
CasADi实战:用Python搞定机器人路径规划中的数值优化问题(附IPOPT配置) 机器人路径规划的核心在于如何在复杂环境中找到一条既安全又高效的轨迹。这本质上是一个带约束的数值优化问题——我们需要最小化某种代价函数(如路径长度或…...
Argos Translate:5分钟掌握开源离线翻译API的全面集成方案
Argos Translate:5分钟掌握开源离线翻译API的全面集成方案 【免费下载链接】argos-translate Open-source offline translation library written in Python 项目地址: https://gitcode.com/GitHub_Trending/ar/argos-translate Argos Translate是一款基于Ope…...
为什么Python社区推荐用pipx替代pip?以virtualenv安装为例演示工作流
为什么Python开发者应该用pipx替代pip?以virtualenv为例的完整隔离方案 当你在Ubuntu终端输入pip install virtualenv时,那个刺眼的externally-managed-environment错误提示就像一堵墙——这不是技术故障,而是Python生态进化的重要路标。传统…...
