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

[Java][Leetcode middle] 151. 反转字符串中的单词

思路挺简单的

自己想的,步骤挺复杂的

  • 先统计处开头和结尾的空格数
  • 跳过开头这些空格,将单词放到数组中
  • 统计最后一个可能漏过的单词(例如:“hello word”,没有空格退出)
  • 倒序输出
public String reverseWords(String s) {int n = s.length();int startCnt = 0;int endCnt = n-1;while(startCnt < n){if(s.charAt(startCnt) == ' '){startCnt++;} else {break;}}while(endCnt >= 0){if( s.charAt(endCnt) == ' '){endCnt--;} else{break;}}String[] words = new String[n];int cnt = -1;int inWord=0;int startIndex = 0;for(int i = startCnt; i <= endCnt ; i++){if(s.charAt(i) == ' '){if(inWord == 1){words[++cnt] = s.substring(startIndex, i);}inWord = 0;}else{if(inWord == 0){startIndex = i;}inWord = 1;}}// 处理最后一个未处理的单词if(inWord == 1){words[++cnt] = s.substring(startIndex, endCnt+1);}StringBuilder sb = new StringBuilder();for(int i = cnt ; i>=0 ; i--){sb.append(words[i]);if(i != 0){sb.append(" ");}}return sb.toString();}

用API

public String reverseWords2(String s) {s = s.trim();String[] split = s.split("\\s+");List<String> wList = Arrays.asList(split);Collections.reverse(wList);return String.join(" ", wList);}

相关文章:

  • 研读论文《Attention Is All You Need》(7)
  • Axure难点解决分享:垂直菜单展开与收回(4大核心问题与专家级解决方案)
  • LeetCode 35 搜索插入位置题解
  • 力扣HOT100之二叉树:230. 二叉搜索树中第 K 小的元素
  • python-leetcode 67.寻找两个正序数组中的中位数
  • MySQL数据库基础 -- SQL 语句的分类,存储引擎
  • Django框架的前端部分使用Ajax请求一
  • 【数根】2022-1-24
  • Vue 中 v-model 的三种使用方式对比与实践
  • C++23 std::mdspan:多维数组处理新利器
  • 【第二届帕鲁杯】第二届帕鲁杯 主环境 基本完整wp
  • linux安装conda环境-ubuntu
  • ECharts-饼图
  • 深入理解 ZAB:ZooKeeper 原子广播协议的工作原理
  • 游戏开发实战(一):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】
  • 云计算简介:从“水电”到“数字引擎”的技术革命
  • 使用docker——10分钟内 完成一个高可用的 MongoDB 副本集部署
  • 【HTML】【面试提问】HTML面试提问总结
  • UE5在C++项目中判断不同平台
  • Docker项目部署深度解析:从基础命令到复杂项目部署
  • 中纪报:强化监督推动过紧日子要求落到实处
  • 世卫大会连续9年拒绝涉台提案
  • 三件珍贵标本开箱!中国恐龙大展5月26日在沪开幕,明星标本汇聚一堂
  • 哪条线路客流最大?哪个站点早高峰人最多?上海地铁一季度客流报告出炉
  • 北邮今年本科招生将首次突破四千人,新增低空技术与工程专业
  • 技术派|威胁F-35、击落“死神”,胡塞武装防空战力如何?