Java_18 字符串中的单词反转

字符串中的单词反转

你在与一位习惯从右往左阅读的朋友发消息,他发出的文字顺序都与正常相反但单词内容正确,为了和他顺利交流你决定写一个转换程序,把他所发的消息 message 转换为正常语序。

注意:输入字符串 message 中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。

示例 1:

输入: message = "the sky is blue"
输出: "blue is sky the"

示例 2:

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

示例 3:

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

提示:

  • 1 <= message.length <= 10^4
  • message 中包含英文大小写字母、空格和数字
  • message 中至少有一个单词

来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


自己心累的解题思路,就不赘述了

能量流失迅速,心力憔悴,待我缓缓

/*
class Solution {public void jiaohuan(char[] chr, int first,int last,char[] char1){char temp=' ';int i=0;for(i=first;i<last;i++){}}public String reverseMessage(String message) {String str1=message.trim();//去除字符串首尾的空格char[] chr=str1.toCharArray();//去除字符间的多个空格int slow=2,fast=2;for(fast=2;fast<str1.length()-2;fast++){if(chr[fast-1]==' '|chr[fast+1]==' '){continue;}chr[slow]=chr[fast];slow++;}//进行交换int len=slow+2;int prevSpaceIndex=-1;char[] char1= new char[len];for(int i=0;i<len;i++){if(chr[i]==' '){jiaohuan(chr,prevSpaceIndex+1,i-1,char1);prevSpaceIndex=i;}}jiaohuan(chr,prevSpaceIndex+1,len-1);}
}
*/

参考后的解答

class Solution {public String reverseMessage(String message) {message = message.trim();String[] tokens = message.split("\\s+");int left = 0, right = tokens.length - 1;while(left < right) {String temp = tokens[left];tokens[left++] = tokens[right];tokens[right--] = temp;}return String.join(" ", tokens);}
}

思绪及感悟

一开始:简单的类型?一看题目好熟悉的套路,易如反掌!

到最后做不下去了,心态有点小崩溃。理想和现实的巨大落差感,一瞬间把我的能量都给抽走

√能够先熟悉string的操作再做题

√能够回忆起先前的答题方法

×题目都不看明白就嘎嘎做(感觉是今天最大的问题)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/576909.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Halcon3D倾斜平面矫正至水平面

前言 在相当多的3d检测中&#xff0c;由于各种因素的干扰&#xff0c;我们所检测的平面通常并不是一个水平面&#xff0c;或者被检测的面不是水平面的情况。尤其是在倾斜面的缺陷检测和平面度检测中&#xff0c;使用被测面与拟合基准面进行计算很难做到准确的定位到缺陷的情况…

git:git rm --cached和git rm -f和git restore --staged的区别(附带详细步骤测试)和git diff比较本地分支和远程分支的区别(细分到文件/文件)

git rm --cached和git rm -f和git restore --staged的区别 当试图删除一个已经git add在暂存区的文件&#xff0c;我们使用 git rm --cached&#xff1a;从暂存区中移除&#xff0c;但保留在工作区中&#xff0c;且工作区中的文件内容在执行命令前需要还原到最后一次git add的…

Python程序怎么打包成exe文件

前言 pyinstaller可以将.py文件打包成.exe可执行文件&#xff0c;即使别人的电脑上没有搭建Python环境&#xff0c;也是可以直接运行程序的。 pyinstaller安装 首先打开cmd&#xff0c;在里面输入下面这一行命令&#xff0c;回车即可。 pip install pyinstaller 我运行命令…

网络七层模型之表示层:理解网络通信的架构(六)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

MYSQL数字函数实操宝典:场景化SQL语句一网打尽

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 MYSQL数字函数&#xff1a;不可不知的数据处理利器 文章目录 Part 1: 准备 &#x…

基于springboot+vue+Mysql的财务管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

python实现app自动化时一直连不上Appium

背景 在尝试python做APP自动化测试时&#xff0c;发现连不上Appium&#xff0c;我是连接模拟器里的APP 过程 一直以为是我调用初始化APP类方法时&#xff0c;实例化不对&#xff1b;一直翻阅资料也没有个所以然&#xff1b;后来发现模拟器APP的版本是Android 12&#xff1b;py…

正弦实时数据库(SinRTDB)的使用(6)-历史插值查询

前文已经将正弦实时数据库的使用进行了介绍&#xff0c;需要了解的可以先看下面的博客&#xff1a; 正弦实时数据库(SinRTDB)的安装 正弦实时数据库(SinRTDB)的使用(1)-使用数据发生器写入数据 正弦实时数据库(SinRTDB)的使用(2)-接入OPC DA的数据 正弦实时数据库(SinRTDB)…

Voodoo中国区刘毅:全球爆款休闲游戏的创意选品与研发发行 | TopOn观察

10月28日&#xff0c;由TopOn联合罗斯基主办的“游戏赛道新机会”主题沙龙在成都举办。活动邀请了多位国内外知名公司及游戏爆款产品的负责人分享&#xff0c;分别从各自的方向及经验出发&#xff0c;以数据、案例、产品分析、行业趋势等多个维度&#xff0c;为行业从业者带来独…

设计模式 —— 设计原则

在软件开发中&#xff0c;为了提高软件系统的可维护性和可复用性&#xff0c;增加软件的可扩展性和灵活性&#xff0c;程序员要尽量根据6条原则来开发程序&#xff0c;从而提高软件开发效率、节约软件开发成本和维护成本。 开闭原则 对扩展开放&#xff0c;对修改关闭。在程序需…

记CMakeLists.txt中已经配置-fPIC参数但未生效的解决方案

文章目录 1. 问题背景2. CMake中添加-fPIC的方式3. 检查-fPIC是否添加成功4. CMakeLists.txt中已经配置-fPIC参数但未生效的解决方案 1. 问题背景 博主的库会被编译成一个供第三方使用的静态库&#xff0c;第三方在使用博主的库编译动态库时&#xff0c;若不加-fPIC会报unreso…

vue3封装Element动态表单组件

1. 封装组件DymanicForm.vue 使用component实现动态组件组件不能直接使用字符串传入&#xff0c;所以根据传入的组件名称找到对应的组件校验规则&#xff0c;可使用rule传入自定义规则&#xff0c;也可以使用封装好的基本规则 示例中使用了checkRequired暴露重置方法和校验方法…