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

151.翻转字符串里的单词

力扣题目链接

给定一个字符串,逐个翻转字符串中的每个单词。

示例 1:
输入: "the sky is blue"
输出: "blue is sky the"

示例 2:
输入: "  hello world!  "
输出: "world! hello"
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。

示例 3:
输入: "a good   example"
输出: "example good a"
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。



双指针思路:先全部翻转,再逐个翻转单词;因为要去除空格,所以我们先移除多余空格

Java代码:

class Solution {public String reverseWords(String s) {StringBuilder sb = removeSpace(s);reverseString(sb, 0, sb.length() - 1);reverseEachWord(sb);return sb.toString();}private StringBuilder removeSpace(String s) {StringBuilder sb = new StringBuilder();int start = 0;int end = s.length() - 1;// 去除首尾空格while(s.charAt(start) == ' ') start++;while(s.charAt(end) == ' ') end--;while(start <= end) {char ch = s.charAt(start);if(ch != ' ' || (sb.length() > 0 && sb.charAt(sb.length() - 1) != ' ')) {sb.append(ch);}start++;}return sb;}private void reverseString(StringBuilder sb, int start, int end) {while(start < end) {char temp = sb.charAt(end);sb.setCharAt(end, sb.charAt(start));sb.setCharAt(start, temp);start++;end--;}}private void reverseEachWord(StringBuilder sb) {int start = 0;int end = 0;while(start < sb.length()) {while(end < sb.length() && sb.charAt(end) != ' ') end++;// reverse wordreverseString(sb, start, end - 1);start = end + 1;end = start;}}
}

http://www.dtcms.com/a/435020.html

相关文章:

  • 【保姆级教程】解决 uiautomator2+weditor 连接模拟器的全流程问题(以 MuMu 为例)
  • 怎样做外部网站推广做网站税率
  • 如何实现午休自动播放音乐并定时关闭?
  • 20251002——在MAXWELL中将3D实体变透明
  • php网站建设外国参考文献中小企业商务网站建设
  • 关于K-means和FCM的凸性问题讨论
  • 2025年渗透测试面试题总结-97(题目+回答)
  • 将图片中的图形转换为可编辑的 PPT 图形
  • 锦州宝地建设集团有限公司网站中文域名查询
  • 怎么自己做刷东西的网站苏州seo排名优化课程
  • 外贸免费p2p网站建设煤棚网架公司
  • [工作流节点7] 新增子表数据的自动化实现 —— 明道云子表自动新增全指南
  • 微网站建设多少钱seo优化有百度系和什么
  • WordPress的woo商店插件怎么实现中文版
  • 什么网站的页面好看公司免费建网站
  • 数据结构---栈的实现
  • 模板网站和定制网站的区别马拉松网站建设
  • 一文快速入门 MongoDB 、MongoDB 8.2 下载安装、增删改查操作、索引、SpringBoot整合 Spring Data MongoDB
  • 【赵渝强老师】MongoDB的分布式存储架构
  • 网站优化案例分析如何连接到网站服务器
  • 成都学生做网站ftp网站怎么建
  • 中心理解题1【转折关系、主题词】
  • 6-扩展内容
  • 教师指南:利用Vibes与AI提示词提升课堂短视频互动与趣味性
  • 嵌入式-Wno-cpp编译选项
  • 怎么做公益网站用html5做的网站过程
  • 做视频必须知道的一些网站山东天成水利建设有限公司网站
  • LunaTranslator_x64_win10_v10.8.0安装教程(附详细步骤+下载后怎么安装)
  • 上海策朋网站设计公司15年做那个网站致富
  • [免费]基于Python的Flask+Vue进销存仓库管理系统【论文+源码+SQL脚本】