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

151. 反转字符串中的单词-day08

题目:151. 反转字符串中的单词
题目链接:https://leetcode.cn/problems/reverse-words-in-a-string/description/
思路:1. 去除字符串的首尾空格,中间保留一个空格
2. 整个字符串全部反转
3. 根据空格,反转字符串中的单个单词
代码:

点击查看代码
public String reverseWords(String s) {//1. 去除首位以及中间多余空格StringBuilder sb=removeSpace(s);// 2.反转整个字符串reverseString(sb, 0, sb.length() - 1);// 3.反转各个单词reverseEachWord(sb);return sb.toString();}private StringBuilder removeSpace(String s){int start=0;int end=s.length()-1;while(start<=end && s.charAt(start)==' ') start++;while(start<=end && s.charAt(end)==' ')end--;StringBuilder sb=new StringBuilder();while(start<=end){char c=s.charAt(start);if(c!=' ' || sb.charAt(sb.length()-1)!=' '){ // 重点 单词之间保留1个空格sb.append(c);}start++;}return sb;}/*** 反转字符串指定区间[start, end]的字符*/public void reverseString(StringBuilder sb, int start, int end) {// System.out.println("ReverseWords.reverseString() called with: sb = [" + sb + "], start = [" + start + "], end = [" + end + "]");while (start < end) {char temp = sb.charAt(start);sb.setCharAt(start, sb.charAt(end));sb.setCharAt(end, temp);start++;end--;}// System.out.println("ReverseWords.reverseString returned: sb = [" + sb + "]");}private void reverseEachWord(StringBuilder sb) {int start = 0;int end = 1;  //end作为每个单词的分割条件int n = sb.length();while (start < n) {while (end < n && sb.charAt(end) != ' ') {end++;}reverseString(sb, start, end - 1);start = end + 1;end = start + 1;}}
http://www.jsqmd.com/news/285683/

相关文章:

  • VL22 根据状态转移图达成时序电路
  • 学习进度 6
  • 基于深度学习的苹果检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • 人群仿真软件:Pathfinder_(9).用户界面与工具栏详解
  • 腾讯云的EdgeOne部署
  • 什么是二维批量归一化操作,如何使用BatchNorm2d层
  • 【个人随笔】我的第一篇博客
  • 人群仿真软件:Pathfinder_(5).人群行为设置
  • 人群仿真软件:Pathfinder_(6).出口与路径定义
  • 人群仿真软件:Pathfinder_(4).环境建模与场景创建
  • SaaS、PaaS、IaaS?
  • 全网最全MBA必备AI论文工具TOP9:开题报告文献综述全解析
  • 测试失败堆成山?用机器学习快速定位根本原因,研发效率翻倍!
  • 北京InfoComm China二十周年:二十年成就亚洲极具影响力的专业视听行业盛会
  • 【2026年-03期】Collaborative evolution between AI and humans
  • 靠口碑翻身的作品!董子健导演首作,观众看完直呼走不出来!
  • PCA与K-means聚类结合的语音识别算法 - 教程
  • 《P1939 矩阵加速(数列)》
  • cdn哪家好
  • 使用 Python 脚本自动化管理 Docker 容器:启动、修改密码、删除及系统资源监控
  • 从DEM到等高线:手撕矢量与栅格两种地形表达
  • 智表ZCELL产品V3.5 版发布,新增行列选中操作等功能
  • 自定义广播数据实现网络冲突自检中的问题
  • 深入解析:量化血流动力学新时代:以数据驱动重构临床决策的精准与高效
  • 整数、浮点数的内存中存储
  • AlexNet 迁移学习实战:CIFAR-10 图像分类实验 - 指南
  • element-ui table高度自适应实现分享
  • Linux Rootkit 手法解析(下):深入内核态的“隐形”攻防战
  • Linux Rootkit 手法解析(上):用户态的“隐身术”与检测思路
  • TikTok矩阵工具实操指南:分主体适配与落地流程拆解