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

算法训练营第十七天 | 151.反转字符串中的单词


一、题目

第十七天 151.翻转字符串里的单词
建议:这道题目基本把做过的字符串操作都覆盖了,不过就算知道解题思路,本题代码并不容易写,要多练一练。题目链接:https://leetcode.cn/problems/reverse-words-in-a-string/

视频讲解:https://www.bilibili.com/video/BV1uT41177fX


二、看到题目的第一想法
刚看到这道题,我脑子里第一个想法就是:“这不就是把句子里的单词顺序反过来吗?”
一开始我想,是不是直接把整个字符串反转一下,再把每个单词单独反转就能解决?但又想到题目里还有很多细节,比如前后的空格、单词中间多个空格的问题,一下子有点懵。
再仔细看示例,发现核心是:先把单词按空格分开,再倒着拼回去,还要把多余的空格删掉。


三、实现过程中遇到的困难
1. 处理空格的问题:最头疼的就是空格。比如字符串前后有空格、单词中间有多个空格,直接用split分割的话,很容易把空字符串也当成单词,处理起来很麻烦。
2. C++中字符串处理不熟:我一开始想直接用C++的stringstream来分割单词,虽然简单,但感觉有点“偷懒”,而且也想练一练手动处理的方式,所以又改回了手动遍历字符串的方法。
3. 边界条件考虑不全:比如输入全是空格的情况?不过题目里说了保证至少有一个单词,所以这个不用考虑,但像单个单词、多个连续空格这些情况,还是踩了几个小坑。
四、代码实现



五、今日收获心得
1. 学会了两种处理这道题的思路:一种是直接分割单词再反转拼接,另一种是“整体反转+局部单词反转”的原地解法。
2. 对字符串中“空格”的处理更有经验了,知道了怎么手动遍历、跳过多余空格,提取出有效的单词。
3. 明白了做算法题,不能只想着“功能实现”,还要考虑题目里的细节和边界条件,不然很容易卡在测试用例上。
http://www.jsqmd.com/news/723736/

相关文章:

  • 伊辛机副本耦合拓扑结构优化与误差缓解方法研究
  • 微信小程序自定义TabBar踩坑实录:TDesign组件与getTabBar接口的配合使用指南
  • 索引失效案例分析:5个让SQL不走索引的坑
  • C++信号处理
  • SeqTrack模型专题全面调研
  • 【附Python源码】基于MLP的波士顿房价预测
  • 性价比高的专用汽车汇总,程力专用汽车可靠吗及行业口碑揭秘 - 工业设备
  • 合规消费增值:从市场痛点到落地玩法,商家、用户、平台都能赢
  • 重载型工业安全地毯,机械作业安全防护优选
  • LDR6500U:Type‑C PD 取电 “一芯通吃”,赋能全场景高效供电
  • 天线测量技术:频谱与网络分析仪应用指南
  • 全志D1s RISC-V开发板:十美元Linux方案解析
  • 记一次 OpenClaw Token 费用优化:从日均 50 美元到 12 美元的技术拆解
  • CBCX平台:多市场接入与跨境交易适配
  • Keithley 2600B系列SMU仪器:高精度电子测试解决方案
  • 用Typer从零搭一个AI命令行工具:我踩过的6个坑
  • 你的数字足迹守护者:为每个应用打造专属位置身份
  • 如何使用 RS® ZNL 设置并执行网络分析仪测量
  • 全网最详细的postman接口测试教程,一篇文章满足你
  • RTX 30/40系显卡实测:用OpenCV CUDA加速图像处理,效率提升多少?
  • 3步解决视频卡顿问题:Flowframes AI插帧实战指南
  • 2026大批量礼盒定制技术干货:从合规到成本的全链路管控 - 优质品牌商家
  • 同态加密密文乘法优化与硬件架构设计
  • vector 核心接口和模拟实现
  • Windows 系统上手动安装 Ubuntu 22.04 到 WSL
  • Python定时任务框架横评:APScheduler vs Celery vs Dramatiq
  • Flutter物流应用的版本控制与依赖管理
  • c++14概述
  • 打造纯净供应链:Ledger官方授权杜绝一切中间风险环节
  • 使用 20 年后告别!Emacs 替代工具开发完成,新工具优势大