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的操作再做题

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

移动端适配方案总结之vw

1、vw/vh是什么&#xff1f; vw是&#xff1a;viewport width 视口宽度单位 vh是&#xff1a; viewport height 视口高度单位 实际开发中我们基本用vw&#xff1b; 2.相对视口的尺寸计算结果 1vw 1/100视口宽度 1vh 1/100视口高度 例如&#xff1a; 当前屏幕视口是 375像素…

数据结构---顺序表实现

目录 1.顺序表 2.动态顺序表的实现 &#xff08;4&#xff09;顺序表初始化 &#xff08;5&#xff09;顺序表销毁 &#xff08;6&#xff09;顺序表的插入 a.尾插 b.头插 &#xff08;7&#xff09;顺序表的删除 a.尾删 b.头删 &#xff08;8&#xff09;指定位置之…

【大数据存储】spark-编程

实验8-spark编程 实验&#xff1a;编写Spark应用程序&#xff08;掌握Spark应用程序的编写、编译打包和运行方法&#xff09; 1、对于两个输入文件A和B&#xff0c;编写Spark独立应用程序&#xff0c;对两个文件进行合并&#xff0c;并剔除其中重复的内容&#xff0c;得到一个…

VSCode如何调试C#代码?

1、启动VSCode&#xff1b; 一、创建项目 1、创建一个文件夹(workspace)&#xff1a; 2、进入这个文件夹 cd tt1 3、创建解决方案 dotnet new sln -o MyApp 4、进入解决方案 cd .\MyApp\ 5、创建项目&#xff08;在此假定为一个命令行的项目&#xff09; dotnet new …

例47:键盘事件演示

建立一个EXE工程&#xff0c;在默认窗体上放一个Image框和一一个text框。在text的按键事件中输入代码&#xff1a; Function Form1_Text1_WM_KeyDown(hWndForm As hWnd, hWndControl As hWnd,nVirtKey As Long, lKeyData As Long) As LongIf nVirtKey VK_SPACE ThenImage1.Pi…

Django的html在for遍历后显示“一、二、三...”和“1,2,3...”分级标题

例如当天的html为&#xff1a; {% load static %} {% csrf_token %} <!DOCTYPE html> <html> <head><title>生活规划师</title><link rel"stylesheet" href"{% static css/LifePlanningGuide.css %}"><script src…

FreeRtos入门-7 中断管理

中断管理 中断管理相比非中断的优势 1&#xff0c;简洁和效率。 2&#xff0c;同步和安全。提供了中断安全的操作&#xff0c;确保在中断上下文中执行时不会引发竞态条件或破坏系统状态。 3&#xff0c;通过配置中断的优先级&#xff0c;可以确保高优先级的中断能够立即响应…

AI跟踪报道第36期-新加坡内哥谈技术-这周的AI新闻铺天盖地

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

STM32重要参考资料

stm32f103c8t6 一、引脚定义图 二、时钟树 三、系统结构图 四、启动配置 &#xff08;有时候不小心短接VCC和GND&#xff0c;芯片会锁住&#xff0c;可以BOOT0拉高试试&#xff08;用跳线帽接&#xff09;&#xff09; 五、最小系统原理图 可用于PCB设计 六、常见折腾人bug…

谷歌推出多模态视频模型,自动生成丰富动作视频

谷歌的研究人员推出了一款多模态扩散模型——VLOGGER。 用户只需要向VLOGGER输入图像、语音&#xff0c;就能生成带语音、丰富动作的人物视频。VLOGGER基于扩散模型开发而成&#xff0c;并提出了一种全新的架构&#xff0c;将文本生成图像模型与空间、时间控制相结合&#xff…

二叉树算法练习day.2

102.二叉树的层序遍历 链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&a…

EFK(elasticsearch+filebeat+kibana)日志分析平台搭建

本文是记录一下EFK日志平台的搭建过程 项目背景&#xff1a; 此次搭建的日志分析平台主要是采集服务器上的java服务的log日志(输出的日志已经是json格式)&#xff0c;这些日志都已经按照不同环境输出到/home/dev /home/test1 /home/test2 目录下了&#xff0c;按照不同的应…

百度松果菁英班——机器学习实践一:海量文件遍历

飞桨AI Studio星河社区-人工智能学习与实训社区 &#x1f990;在指定目录下显示目录结构 !tree -L 显示级数限制 指定目录 如&#xff1a; !tree -L 3 ./data/ 表示&#xff1a;在目录 ./data/ 下显示目录结构&#xff0c;限制显示到第三级子目录或文件。这个命令通常在命…

基于单片机冬季供暖室温调节控制系统

**单片机设计介绍&#xff0c;基于单片机冬季供暖室温调节控制系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的冬季供暖室温调节控制系统是一种集温度检测、控制和显示功能于一体的智能化系统。该系统以单片机为…

基于Springboot+Vue实现前后端分离社团管理系统

一、&#x1f680;选题背景介绍 &#x1f4da;推荐理由&#xff1a; 21世纪时信息化的时代&#xff0c;几乎任何一个行业都离不开计算机&#xff0c;将计算机运用于社团管理也是十分常见的。过去使用手工的管理方式对大学生社团进行管理&#xff0c;造成了管理繁琐、难以维护等…

图解大型网站多级缓存的分层架构

前言 缓存技术存在于应用场景的方方面面。从浏览器请求&#xff0c;到反向代理服务器&#xff0c;从进程内缓存到分布式缓存&#xff0c;其中缓存策略算法也是层出不穷。 假设一个网站&#xff0c;需要提高性能&#xff0c;缓存可以放在浏览器&#xff0c;可以放在反向代理服…

开源流程图表库(04):mxGraph,都是可视化编辑,导出使用。

mxGraph是一个用于创建和展示图形的JavaScript库。它提供了丰富的功能和工具&#xff0c;可以用于构建各种类型的图形应用程序&#xff0c;包括流程图、组织结构图、网络拓扑图等。 mxGraph的编辑器 一、mxGraph的特点和功能 以下是一些mxGraph的特点和功能&#xff1a; 强大…

ES10 学习

文章目录 1. Object.fromEntries()2. trimStart() 和 trimEnd()3. 数组的flat() 和flatMap()4. Symbol 对象的description 属性5. try ... catch(e){} 1. Object.fromEntries() Object.fromEntries() 方法允许你轻松地将键 值对列表转换为对象 let arr [["name",&qu…

Lanelets_ 高效的自动驾驶地图表达方式

Lanelets: 高效的自动驾驶地图表达方式 附赠自动驾驶学习资料和量产经验&#xff1a;链接 LaneLets是自动驾驶领域高精度地图的一种高效表达方式&#xff0c;它以彼此相互连接的LaneLets来描述自动驾驶可行驶区域&#xff0c;不仅可以表达车道几何&#xff0c;也可以完整表述车…

有效的括号--如果字符串没有左括号,或者字符串是右括号为开头,则存在括号不匹配和顺序不正确的情况公字符串无效

题目-有效的括号 ​ 一、分析题目 二、编写代码 typedef char STDataType;typedef struct Stack {STDataType* a; //int top; //相当于数组下标&#xff0c;注意栈为空时&#xff0c;top的值应该为&#xff1f;int capacity;//栈的容量 }ST;void STInit(ST* pst); void STD…