151. 反转字符串中的单词

151. 反转字符串中的单词(力扣LeetCode) 想一下,我们将整个字符串都反转过来,那么单词的顺序指定是倒序了,只不过单词本身也倒序了,那么再把单词反转一下,单词不就正过来了。移除前导空格和多余空格:快指针 fast 用于跳过前导空格和连续的空格,而慢指针 slow 用于构建没有多余空格的新字符串。这个函数实现了题目要求的功能,使用了原地操作(没有使用额外的存储空间),然后完成单词的反转,并且在单词之间只保留一个空格。版本一的代码是一般的思考过程,就是 先移除字符串前的空格,再移除中间的,再移除后面部分。单词 是由非空格字符组成的字符串。 阅读详情

151. 反转字符串中的单词

已解答

中等

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

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

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

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

示例 1:

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

示例 2:

输入:s = "  hello world  "
输出:"world hello"
解释:反转后的字符串中不能存在前导空格和尾随空格。

示例 3:

输入:s = "a good   example"
输出:"example good a"
解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。

class Solution {
    public String reverseWords(String s) {
        // 去除字符串首尾空格并按空格分割单词
        String[] words = s.trim().split("\\s+");
        
        // 使用StringBuilder构建结果
        StringBuilder reversed = new StringBuilder();
        
        // 从后向前遍历单词数组
        for (int i = words.length - 1; i >= 0; i--) {
            reversed.append(words[i]);
            if (i > 0) {
                reversed.append(" ");
            }
        }
        
        return reversed.toString();
    }
}

1. 优雅的字符串预处理

String[] words = s.trim().split("\\s+");
  • trim():一次性去除字符串首尾的所有空格,避免了手动处理边界空格的复杂性。
  • split("\\s+"):使用正则表达式 \\s+ 匹配一个或多个连续空格,确保无论单词间有多少空格都能正确分割。例如:
    • 输入 " hello world " → 分割为 ["hello", "world"]。
    • 无需循环或条件判断,一行代码完成复杂的字符串清理。
猫群优化算法(CSO)详解:从生物灵感到智能优化 猫群优化算法(CSO)是一种模拟猫科动物行为的群体智能优化算法。该算法基于猫的两种主要行为模式:搜寻状态(全局探索)和跟踪状态(局部开发)。CSO通过混合率(MR)动态调整两种模式的比例,实现探索与开发的平衡。算法核心包括搜寻模式的变异操作和跟踪模式的速度-位移模型,具有收敛性能好、全局搜索能力强等特点。相比传统优化算法,CSO在高维复杂问题中表现优异,已成功应用于函数优化、图像处理等多个领域。算法性能受混合率、变化域等参数影响,自适应参数策略可进一步提升优化效果。 阅读详情

相关推荐

零基础用AHK操作Excel:从数据读取到自动填写(附完整脚本解析)

本文为零基础用户详细介绍了如何使用AutoHotkey(AHK)通过COM接口高效操作Excel,实现从数据自动读取到填写的完整自动化流程。文章包含完整的脚本解析、环境搭建指南、核心代码逐行讲解以及实际应用案例,帮助办公人员大幅提升数据处理效率,告别重复劳动。

weixin_29202213的博客 553

【LeetCode-151】反转字符串中的单词

【LeetCode-151】反转字符串中的单词,在本文中,我们将深入探讨如何反转字符串中的单词顺序。通过详细的解题思路、清晰的代码实现以及生动的案例分析,帮助读者轻松掌握这一经典算法问题。

qq_44530108的博客 972

4-字符串-41-反转字符串中的单词-LeetCode151

4-字符串-41-反转字符串中的单词-LeetCode151

weixin_43873121的博客 1216

VS2022配置Qt6

VS2022配置QT教程

Life is a struggle ! 6358

华为OD机试 新系统真题 【最小代价完成论文评审】

华为OD机试 新系统真题【最小代价完成论文评审】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【最小代价完成论文评审】多语言题解。

qq_45776114的博客 439

反转字符串中的单词 力扣151

给你一个字符串s,请你反转字符串中的顺序。是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的分隔开。返回顺序颠倒且之间用单个空格连接的结果字符串。输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。反转后的字符串中不能存在前导空格和尾随空格。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。

qq_65031432的博客 1078

华为Ascend C算子开发能力认证(中级)(个人记录,有完整代码,已通过认证,仅供参考)

本文介绍了在昇腾NPU环境下实现Sigmoid算子的完整流程。首先需要在华为云ModelArts-Notebook或开发者套件上搭建环境,要求CANN版本为8.0.0.beta1。主要内容包括:1)实现SigmoidCustom算子的kernel侧核函数代码;2)完成host侧Tiling结构体实现;3)支持Float16数据类型。代码实现部分详细展示了核函数计算流程、数据拷贝和牛顿迭代优化方法。最后介绍了编译部署流程,包括环境配置、代码上传、编译执行等步骤,并提供了提交规范说明。该实现通过调用Ascend

qq_73044452的博客 1107

LeetCode 151. 反转字符串中的单词

这个问题要求将给定字符串中的单词顺序反转,同时移除多余空格,使得每个单词之间只有一个空格,且字符串首尾无空格。整体反转+单词反转的组合巧妙地实现了单词顺序的反转,同时保持单词内容正确。将整个字符串反转,此时单词顺序已反转,但每个单词内部字符顺序也被反转。:通过三次反转操作实现单词顺序的反转,同时处理多余空格。将字符串中的多余空格去除,只保留单词间的单个空格,并调整字符串长度。遍历字符串,对每个单词进行局部反转,恢复单词的原始顺序。这种方法高效且符合题目要求,是解决此类问题的经典思路。

weixin_45524582的博客 596

【路径规划】Theta_star算法机器人栅格地图最短路径规划【含Matlab源码 2618期】

Theta_star算法机器人栅格地图最短路径规划 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 362

从零开始学 PyTorch 7天路线图(完整可运行代码版)

本文提供了5天PyTorch入门教程的完整代码,涵盖从基础到实战的核心内容。Day1测试环境并介绍张量基础;Day2讲解常用张量操作;Day3演示自动求导机制;Day4实现完整线性回归模型;Day5构建MNIST手写数字识别全连接网络。所有代码可直接运行,包含GPU检测、梯度计算、模型训练和可视化等关键环节,帮助新手快速掌握PyTorch核心概念和典型应用场景。

IT老农民的博客 314

151.反转字符串中的单词

进行反转从而完成整个数组的反转,通过该题可以先对于整个数组反转,再对每个单词反转,将最后得到的字符数组清除末位多余的空格,即可完成本题,如下是图示。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。解释:反转后的字符串中不能存在前导空格和尾随空格。

weixin_46006714的博客 411

【100%通过率】华为od机试C卷【出差 / 员工派遣】C++ 实现

某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工部门每个员工有一个员工号 (1,2,3,......),工号连续,从 1开始。部长派遣员工的规则:

MISAYAONE的博客 2192

【LeetCode 151 反转字符串中的单词】

【LeetCode 151 反转字符串中的单词】

GeneLee_的博客 138

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Leetcode151. 反转字符串中的单词

给你一个字符串 s ,请你反转字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。

Ishihara_Satomi的博客 440

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

leetcode151. 反转字符串中的单词

​高效分割:利用简化空格处理,代码简洁高效。​原地反转:通过双指针交换单词顺序,无需额外数据结构。​边界处理:自动处理首尾空格及多余空格,保证输出格式正确。​适用性:适用于需要按单词处理字符串的场景,如日志解析、文本格式化等。

m0_49844997的博客 436

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Leetcode 151. 反转字符串中的单词

输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的。顺序颠倒且 单词 之间用单个空格连接的结果字符串。解释:反转后的字符串中不能存在前导空格和尾随空格。输入:s = “a good example”输入:s = “the sky is blue”

li_yizhixiaowukong的博客 617

LeetCode第151题_反转字符串中的单词

给你一个字符串s,请你反转字符串中的顺序。是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的分隔开。返回顺序颠倒且之间用单个空格连接的结果字符串。注意:输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。

qq_40263592的博客 606

双指针-151.反转字符串中的单词

中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。如果字符串在你使用的编程语言中是一种可变数据类型,请尝试使用。反转后的字符串中不能存在前导空格和尾随空格。中使用至少一个空格将字符串中的。之间用单个空格连接的结果字符串。是由非空格字符组成的字符串。

weixin_41010318的博客 427

LeetCode刷题笔记 151. 翻转字符串里的单词 344. 反转字符串 557. 反转字符串中的单词 III

LeetCode刷题笔记 反转字符串344. 反转字符串双指针无额外定义557. 反转字符串中的单词 III朴实无华语法糖 344. 反转字符串 双指针 class Solution { public: void swap(char& a,char&b){ char tmp; tmp=b; b=a; a=tmp...

g534441921的博客 305

代码随想录-字符串 | 151反转字符串中的单词

复习了类的使用在写代码时,要多注意是否可以提高代码的复用率。

qq_44581505的博客 536

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

欢迎来到李耶的频道【LeetCode面试题】。

李耶的随文笔记 204
上一篇: 1493. 删掉一个元素以后全为 1 的最长子数组(滑动窗口)
下一篇: 42. 接雨水
芝士panda
博客等级 码龄4年 33粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值