【子串】151. 反转字符串中的单词【中等】

反转字符串中的单词

  • 给你一个字符串 s ,请你反转字符串中 单词 的顺序。

单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。

返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。

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

解题思路

  • 要反转字符串中的单词顺序,可以先将整个字符串进行反转,然后再逐个单词进行反转。
  • 这样就可以得到单词顺序颠倒的结果字符串。

java实现

public class ReverseWords {public String reverseWords(String s) {// 去除字符串首尾空格,并将连续多个空格替换为一个空格//"\s" 表示空白字符,包括空格、制表符、换行符等//"\s+" 表示匹配一个或多个连续的空白字符s = s.trim().replaceAll("\\s+", " ");// 将字符串转换为字符数组char[] chars = s.toCharArray();// 反转整个字符串reverse(chars, 0, chars.length - 1);// 反转每个单词int start = 0;for (int end = 0; end < chars.length; end++) {if (chars[end] == ' ') {reverse(chars, start, end - 1);start = end + 1;}}// 反转最后一个单词reverse(chars, start, chars.length - 1);return new String(chars);}// 辅助函数:反转字符数组中指定范围的字符private void reverse(char[] chars, int left, int right) {while (left < right) {char temp = chars[left];chars[left] = chars[right];chars[right] = temp;left++;right--;}}public static void main(String[] args) {ReverseWords reverseWords = new ReverseWords();String s1 = "the sky is blue";System.out.println("Test Case 1:");System.out.println("Input: \"the sky is blue\"");System.out.println("Reversed Words: \"" + reverseWords.reverseWords(s1) + "\""); // Expected: "blue is sky the"String s2 = "  hello world  ";System.out.println("\nTest Case 2:");System.out.println("Input: \"  hello world  \"");System.out.println("Reversed Words: \"" + reverseWords.reverseWords(s2) + "\""); // Expected: "world hello"}
}

时间空间复杂度

  • 时间复杂度: 遍历字符串的时间复杂度为 O(n),其中 n 是字符串的长度。
  • 空间复杂度: 使用了额外的字符数组,空间复杂度为 O(n),其中 n 是字符串的长度。

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

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

相关文章

【5月13日】YesPMP平台目前最新项目

YesPMP平台目前最新项目&#xff0c;有感兴趣的用户查看项目接单&#xff0c;与项目方沟通&#xff0c;双方直接对接。 1.查看项目&#xff1a;blender动画师 2查看项目&#xff1a;找宠友信息源码 3.查看项目&#xff1a;儿童…

ComfyUI 完全入门:必备插件

大家好&#xff0c;我是每天分享AI应用的萤火君&#xff01; ComfyUI 是一个基于 Stable Diffusion 的AI绘画创作工具&#xff0c;最近发展势头特别迅猛&#xff0c;但是 ComfyUI 的上手门槛有点高&#xff0c;用户需要对 Stable Diffusion 以及各种数字技术的原理有一定的了解…

手机运行python代码的编译器

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️感谢大家点赞&#x1f44d;&…

马尔可夫链 学习笔记

马尔可夫链是一种数学模型&#xff0c;用于描述具有马尔可夫性质的随机过程——当前状态的概率只依赖于前一个状态。下面是一个简单的例子&#xff0c;使用三个数据&#xff08;状态&#xff09;来描述一个简单的马尔可夫链&#xff1a; 假设有三个状态&#xff1a;晴天&#…

【Web】CTFSHOW 月饼杯 题解(全)

目录 web1_此夜圆 web2_故人心 web3_莫负婵娟 web1_此夜圆 拿到源码&#xff0c;一眼字符串逃逸 本地测一测&#xff0c;成功弹出计算器 <?phpclass a {public $uname;public $password;public function __wakeup(){system(calc);} }function filter($string){retur…

Ali-Sentinel-Spring WebMVC 流控

归档 GitHub: Ali-Sentinel-Spring WebMVC 流控 测试 模块&#xff1a;sentinel-dashboard 先启动 DashboardApplication访问 http://localhost:8080/#/dashboard 登录&#xff1a;sentinel / sentinel 模块&#xff1a;sentinel-demo-spring-webmvc 在 WebMvcDemoApplicat…

全新Transformer模型:全球与局部双重突破!

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享&#xff0c;与你一起了解前沿深度学习信息&#xff01; 引言&#xff1a;探索视觉变换器在对象重识别中的全局与局部特征 在对象重识别&#xff08;Re-ID&#xff09;的研究领域中&#xff0c;如何有效地从不同时间…

学习RAG踩坑解决记录

学习 https://zhuanlan.zhihu.com/p/675509396 和 https://zhuanlan.zhihu.com/p/668082024 文章了解RAG&#xff0c;使用langchain实现一种简单的RAG问答应用示例。 问题一&#xff1a;import langchain 报错 pydantic.errors.PydanticUserError: If you use root_validator…

奇舞周刊第527期:​Virtual DOM(虚拟DOM) 的地位再一次被挑战 !!!

奇舞推荐 ■ ■ ■ Virtual DOM&#xff08;虚拟DOM&#xff09; 的地位再一次被挑战 &#xff01;&#xff01;&#xff01; 最近在前端圈有一个 Github Repo 算是蛮受关注的 - proposal-signals&#xff0c;这是一个由 Daniel Ehrenberg 为主导&#xff0c;向 TC39 提案的项目…

多语言环境下的正则表达式实战:校验整数、小数

在软件开发中&#xff0c;正则表达式是验证用户输入数据格式的强大工具&#xff0c;特别是在处理表单验证时。本文将通过JavaScript、Java、Python、C、Rust、Go、C六种编程语言展示如何使用正则表达式来校验输入是否为整数或小数&#xff0c;特别强调小数点后最多保留两位的场…

26版SPSS操作教程(高级教程第二十章)

目录 前言 粉丝及官方意见说明 第二十章一些学习笔记 第二十章一些操作方法 神经网络与支持向量机 人工神经网络&#xff08;artificial neural network&#xff0c;ANN&#xff09; 假设数据 具体操作 结果解释 对案例的进一步分析 结果解释 ​编辑 尝试将模型复…

自动驾驶技术与传感器数据处理

目录 自动驾驶总体架构 感知系统 决策系统 定位系统 ​计算平台​ 仿真平台​ 自动驾驶公开数据集 激光点云 点云表征方式 1) 原始点云 2) 三维点云体素化 3)深度图 4)鸟瞰图 点云检测障碍物的步骤 PCL点云库 车载毫米波雷达 车载相机 设备标定 自动驾驶…

手把手带你构建一个自己的LLM训练框架【1】

手把手带你构建一个自己的LLM训练框架【1】 随着到模型的日益发展&#xff0c;构建一个属于自己的训练框架是有趣的。 计划写一系列教程来构建属于自己的训练框架。 目前项目仍在持续更新中&#xff08;未完成&#xff09;&#xff0c;详情见github项目&#xff1a;https://g…

Matlab如何导出高质量论文插图?科研效率UpUp第8期

当你用Matlab绘制了一张论文插图&#xff1a; 想要所见即所得&#xff0c;原封不动地将其保存下来&#xff0c;该怎么操作呢&#xff1f; 虽说以前总结过7种方法&#xff08;Matlab导出论文插图的7种方法&#xff09;&#xff0c;但要说哪一种可以满足上面的要求&#xff0c;想…

Flutter 中的 TextField 小部件:全面指南

Flutter 中的 TextField 小部件&#xff1a;全面指南 在 Flutter 中&#xff0c;TextField 是一个允许用户输入文本的小部件。它非常灵活&#xff0c;支持多种文本输入场景&#xff0c;如单行文本、多行文本、密码输入、数值输入等。TextField 还提供了丰富的定制选项&#xf…

UV胶固化时使用的UV灯要如何选择才适合!

近日&#xff0c;在使用UV灯固化 UV胶的过程中&#xff0c;遇到了不同的问题&#xff0c;最基本的就是很多人对于固化UV胶时&#xff0c;使用什么样的UV灯不清楚&#xff0c;从而导致了UV胶在实际使用过程中没有固化&#xff0c;或者没有完全固化&#xff0c;胶水仍处是液体流动…

2024OD机试卷-连续字母长度 (java\python\c++)

题目:连续字母长度 题目描述 给定一个 字符串 ,只包含大写字母,求在包含同一字母的子串中,长度第 k 长的子串的长度,相同字母只取最长的那个子串。 输入描述 第一行有一个子串(1<长度<=100),只包含大写字母。 第二行为 k的值 输出描述 输出连续出现次数第k多…

2024年AIGC发展趋势报告

来源&#xff1a;靠谱二次元 AIGC&#xff0c;即人工智能生成内容&#xff0c;是近年来在人工智能领域兴起的一项重要技术。 它通过使用机器学习和深度学习等技术&#xff0c;使得计算机能够自动生成各种形式的数字内容&#xff0c;如文本、图像、音频和视频等。 AIGC的发展可…

批量处理文件,高效分发数据:一键操作解决繁琐工作的技巧

在数字化时代&#xff0c;文件处理和数据分发已经成为许多行业日常工作中不可或缺的一部分。然而&#xff0c;面对大量的文件和数据&#xff0c;传统的手动处理方式往往显得繁琐且效率低下。幸运的是&#xff0c;现代技术为我们提供了办公提效工具批量处理文件&#xff0c;高效…

【谷粒商城】01-环境准备

1.下载和安装VirtualBox 地址&#xff1a;https://www.virtualbox.org/wiki/Downloads 傻瓜式安装VirtualBox 2.下载和安装Vagrant官方镜像 地址&#xff1a;https://app.vagrantup.com/boxes/search 傻瓜式安装 验证是否安装成功 打开CMD,输入vagrant命令&#xff0c;是否…