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

LeetCode--151.反转字符串中的单词(字符串/双指针法)

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至少存在一个单词

**进阶:**如果字符串在你使用的编程语言中是一种可变数据类型,请尝试使用O(1)额外空间复杂度的原地解法。

解题思路

1、移除字符串中多余的空格,并重建字符串

2、反转字符串

3、反转字符串中的单词

代码

classSolution{publicstaticchar[]removeSpace(Strings){// 使用字符数组char[]array=s.toCharArray();// 用快慢指针移除空格// 慢指针用于写数据intslow=0;// 快指针用于读数据for(intfast=0;fast<array.length;fast++){// 如果读到不是空格再写if(array[fast]!=' '){if(slow!=0){// 为该单词前加上空格array[slow++]=' ';}//写完一个单词while(fast<array.length&&array[fast]!=' '){array[slow++]=array[fast++];}}}// resize数组大小为slow大小char[]newArray=newchar[slow];for(inti=0;i<slow;i++){newArray[i]=array[i];}returnnewArray;}publicstaticchar[]reverseCharArray(char[]s,intstart,intend){// 反转字符串数组intleft=start;intright=end-1;while(left<right){s[left]^=s[right];s[right]^=s[left];s[left++]^=s[right--];}returns;}publicstaticStringreverseWordInCharArray(char[]s){// 反转每个单词intstart=0;for(inti=0;i<=s.length;i++){// 反转条件判断if(i==s.length||s[i]==' '){intend=i;s=reverseCharArray(s,start,end);start=i+1;}}returnnewString(s);}publicStringreverseWords(Strings){// 移除字符串中多余的空格char[]sArray=removeSpace(s);// 反转字符串数组sArray=reverseCharArray(sArray,0,sArray.length);// 反转单词s=reverseWordInCharArray(sArray);returns;}}
http://www.jsqmd.com/news/607215/

相关文章:

  • open-vm-tools 故障排除指南:10个常见问题与解决方案
  • 新手必看!圣女司幼幽-造相Z-Turbo一键部署与快速出图指南
  • intv_ai_mk11可自主部署:脱离云API,数据不出内网的安全文本生成方案
  • CentOS 7.7(基于 RHEL 7 系列)中,账号管理与权限控制是系统安全管理【20260408】005篇--ansible-playbook版本
  • 美国秋招机构怎么选:HM内推+身份规划服务(26年榜单) - Matthewmx
  • 聊聊广州德系车专门修理价格,了解一下大概费用多少钱 - myqiye
  • STM32点灯翻车实录:从原理图分析到代码调试,手把手教你排查PC13不亮的问题
  • AnyLogic-Pypeline:跨语言集成与工作流自动化的仿真革新方案
  • 技术创新带来的创作革命
  • 告别熬夜肝论文!揭秘百考通AI如何用“双降”黑科技,搞定毕业季全流程难题
  • 华为交换机等保合规实战:构建“身份鉴别”安全基线
  • 企业微信服务商争源数字科技谈中小企业如何用好数字化工具
  • 每天2起融资、3亿入场,具身智能上演资本核爆
  • 深入浅出ArrayList:从线性表到洗牌算法,掌握Java集合核心
  • 别再手动调色了!用Matlab的ColorCopy插件,5分钟搞定Nature级柱状图配色
  • TMSpeech:Windows本地实时语音识别工具完整使用指南
  • 逆向工程实战:从exe4j打包的GUI程序中提取并反编译Java源码
  • 从电网电压到数字信号:深入浅出图解DQ锁相环(PLL)的四种工作模式
  • Android音效库集成全攻略:如何快速接入Dolby Atmos等第三方音效
  • 2026年福建知名的豪宅设计机构排名,泉州众升建筑装饰设计榜上有名 - mypinpai
  • 9.8分高分推荐!恒鑫旺废旧物资回收|2026 全国机械设备回收厂家 TOP10 权威榜单 - 深度智识库
  • 从理想公式到真实波形:运放方波振荡电路的非理想特性全解析(压摆率、偏置电流、温漂)
  • 别再死记硬背了!用一张图搞懂射频功放P1dB、P3dB和Psat到底啥关系
  • Z-Image-Turbo-辉夜巫女部署案例:GPU算力优化下的低显存高效文生图方案
  • 终极Windows任务栏美化神器:TranslucentTB完全使用指南
  • 如何通过胡桃工具箱提升你的原神游戏体验:Windows平台开源助手终极指南
  • 3步解锁网易云加密音乐:ncmdump工具的完整使用指南
  • 2026年湖南保温好的落地窗品牌推荐,皓思门窗性价比高值得选 - 工业品牌热点
  • 3步掌握WeChatExporter:让微信聊天记录导出变得如此简单
  • SpringBoot项目实战:用jodconverter+LibreOffice实现Word转PDF(附常见报错解决方案)