逆序输出字符串的单词——Leetcode系列(二)

每天一道LeetCode-----以单词为单位逆序字符串,每个单词之间以一个空格分隔(原字符串中可能有多个空格) Reverse Words in a String 原题链接Reverse Words in a String 将字符串以单词为单位逆序,每个单词之间以一个空格间隔(原字符串中可能有多个空格) 逆序的方法就是先整体逆序,然后从头到尾每个单词逆序。不容易处理的是单词间空格,只能一个个字符移动 代码如下 class Solution { public: void revers 阅读详情

Given an input string, reverse the string word by word.

For example,
Given s = "the sky is blue",
return "blue is sky the".

Clarification:

  • What constitutes a word?
    A sequence of non-space characters constitutes a word.
  • Could the input string contain leading or trailing spaces?
    Yes. However, your reversed string should not contain leading or trailing spaces.
  • How about multiple spaces between two words?
    Reduce them to a single space in the reversed string.
My Answer:

public class Solution {
    public String reverseWords(String s) {
        String[] array = s.split(" ");
        StringBuilder builder = new StringBuilder();
        String space = " ";
        int length = array.length - 1;
        for(int i = length; i >= 0; i--){
            String cleanStr = array[i].trim();
            if(cleanStr.length() == 0){
                continue;
            }
            
            builder.append(cleanStr);
            builder.append(space);
        }
        return builder.toString().trim();
    }
}


LeetCode.151 反转字符串中的单词 为了锻炼我们处理字符串的能力,我们可以不使用 Java 提供的各种 API,而是自定义函数完成对字符串的处理。这里我们可以拆分成三个函数,一个去除两端的空格和单词间空格的函数,一个反转指定区间字符串的函数,一个反转每个单词的函数。我们解决翻转单词的思路是 :==去除空格=>==翻转整个字符串=>==翻转每个单词=>有了具体思路,我们就可以直接进行操作了。首先我们要去除字符串中多余的空格,由于 Java 的字符串不可变性这里我们必须创建 StringBuffer 进行操作//创建StringBuffer。 阅读详情

相关推荐

【中等】力扣算法题解析LeetCode151:反转字符串中的单词

题目要求反转字符串中的单词顺序并去除多余空格。解法分为三步:1) 使用双指针原地去除多余空格;2) 反转整个字符串;3) 逐个反转单词。Java实现通过trimSpaces、reverse和reverseEachWord方法完成,达到O(1)额外空间复杂度。代码高效处理前导、尾随及多余空格,满足进阶要求。

ylumwd的博客 862

单词逆序(C语言)

题目描述 *输入一行不超过10个单词的英文字符串,将其中单词逆顺序输出。函数原型:int wordReverse(char s,char wd[10][20]),接收字符串,并把串中单词提取出来存放在二维数组wd[10][20]中,函数返回单词数量。逆序后的单词,在主函数中输出。 输入 1行: 一个不超过10个单词的字符串,单词之间由空格分开 输出 1行: 逆序排列后的单词,单词之间由空格分开,最...

colzry的博客 5356

魔兽世界怀旧服宏命令全解析:从自动换装到智能判定,老玩家才知道的黑科技

本文全面解析魔兽世界怀旧服宏命令的高级应用,从自动换装到智能判定,揭秘老玩家专属的黑科技技巧。深入探讨怀旧服特有的宏命令机制,包括施法队列、装备切换系统和职业专属技巧,帮助玩家在经典旧世版本中提升战斗效率。

weixin_29230865的博客 731

单词的逆序输出 c语言实现

输入一句话(不含标点),其中包含多个单词并以空格分隔,请把这句话改为“倒装句”,即单词出现的顺序前后颠倒(注意是单词顺序不是字母顺序,单词之间有空格)。最近在CODIA刷题遇到了这样的题目,看到大家都在用递归解题一点也不符合菜鸟的做题风范,我就按照自己的想法凑了一下答案,仅供参考。列入输入字符串:what is wrong with you 输出为:you with wrong is what。

Pythonquick的博客 1546

基于Multisim设计电子密码锁

一、设计任务与要求:(可软件仿真实现)1)基本要求:设计一个数字密码锁,要求只有按正确的顺序,输入正确的密码,方能输出开锁信号,实现开锁。设置三个正确的密码键和若干个伪键,任何伪键按下后,密码锁都无法打开。每次只能接受四次按键信号,而且第四个键只能是“确定”或者“重输键”,其他无效。能显示已输入键的个数2)扩展要求:第一次密码输错后,可以输入第二次,但是连续三次输错,密码将被锁,必须按复位键才能解锁。

ablinger的博客 4418

stm32最小系统_完成一个最小FOC矢量控制系统所需的基本模块和功能配置

当我们读懂 FOC 矢量控制的基本原理之后,便迫不及待的想动手尝试,去实现一个矢量控制系统,让电机先转起来,有一个直观的感受。因此,我们需要设计实现一个矢量控制的最小系统,具备矢量控制的基本功能,满足电机矢量运行的基本条件。首先,看一下矢量控制的基本架构:矢量控制架构如上图所描述,矢量控制系统包括实时电流的采集、clarke 变换、park 变换、SVPWM 、实时角度的反馈和计算以及电流环和速...

weixin_39524048的博客 1784

C语言基础03——函数。字符反向排序、逆序输出单词

函数是什么? ​ 函数是可以完成某个特定功能的并且可以重复利用的代码片段。一般一个函数就是一个功能单元,假设在以后的开发中,某个功能是可以独立抽取出来的,建议定义为函数,这样以后要是需要实现这个功能,那么直接调用这个函数即可,不再需要重复编写。 库函数 什么是库函数? 如printf()打印函数、strcpy()字符串拷贝函数、pow()次方运算函数,像这些完成基础性功能的函数,我们每个人在开发的过程中都可能用的到,为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数

博客 1451

西门子工业物联网云平台 Insights Hub 技术白皮书

Insights Hub是西门子公司推出的工业物联网云平台,它是一个使用开放技术的基于云架构的平台,能够为制造业企业提供物联网连接、数据分析、应用开发等一系列服务。Insights Hub的设计理念是“连接、分析和运营”,即通过连接物理设备、收集数据并进行分析,来优化工业生产的运营和管理。

可爱的刘三岁的博客 3335

leetcode58-单词反转

题目 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。 示例 1: 输入: “the sky is blue” 输出: “blue is sky the” 示例 2: 输入: " hello world! " 输出: “world! hello”...

sinat_32165273的博客 543

【PowerBI专栏】PowerBI导入MYSQL数据库

本文介绍了在PowerBI中连接MySQL数据库的方法。首先需要下载并安装MySQL官方.NET连接驱动(推荐8.4.0版本),安装完成后重启PowerBI。连接时需填写服务器IP和数据库名称等必填参数。文章详细说明了连接配置步骤,包括账户设置、数据表选择以及可能遇到的数据格式转换问题处理。最后指导用户完成数据清洗后进入PowerPivot进行后续计算。特别提醒最新9.4版本可能存在兼容性问题,建议使用稳定的8.4版本连接器。

技术与管理的平衡木- 694

Java语音革命:用代码打造永不疲倦的AI客服,让客户支持效率飙升300%!

客户支持领域常面临“薛定谔困境”,即无法预知客户来电的意图是投诉还是表扬。通过Java技术,尤其是语音识别和自然语言处理(NLP),可以有效解决这一问题。文章展示了如何利用Java代码构建“声纹量子引擎”,实现客户支持的自动化。核心技术包括录音与预处理、语音识别和语义理解。通过百度AI API和Stanford NLP,系统能够快速、准确地识别客户语音并理解其意图。数据表明,优化后的AI处理时间从15分钟缩短至18秒,语音识别准确率提升至98.5%,并发处理能力达到单实例1000+请求。这些技术显著提升了客

墨夶的博客 1035

单词逆序输出(c语言)

int main() { int l,j = 0; int tmp = 0; //存储输入字符串的数组 char arr[100] = "i love beijing."; //用来存储输出字符串的数组 char arr2[100]; //输入字符串 //gets(arr); l = strlen(arr); arr2[l] = '\0'; //一开始的考量是需要一直用到该字符串长度的 //在修改BUG时已经不.

qq_56713382的博客 2771

【数据分析】R语言分段结构方程模型手把手教程(Piecewise Structural Equation Model)

分段结构方程模型(Piecewise Structural Equation Model, SEM)是一种用于分析变量之间因果关系的统计方法。它通过将复杂的因果关系分解为多个简单的线性模型来评估变量之间的直接和间接效应。与传统的结构方程模型(SEM)不同,分段结构方程模型不需要假设数据的多变量正态分布,因此在处理非正态数据时更为灵活。

专注生信领域 2650

python字符串单词逆序输出、多空格_LeetCode 557. 反转字符串中的单词 III | Python

557. 反转字符串中的单词 III题目给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"提示:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。解题思路使用辅助列表先看题目,给定字符串,其中字符串含有空格,要...

weixin_29195217的博客 1590

08 RK3568 MAC TO MAC直连 RTL8367S mdio

本文:采用rk3568 gamc0 通过rgmii直连 交换芯片的mac口 通信方法为mdio。

qq_39451352的博客 3476

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

字符串中的单词逆序——python2

实现将字符串的单词逆序。例: input:"Let's take LeetCode contest" output:"s'teL ekat edoCteeL tsetnoc"  代码如下: class Solution(object): def reverseWords(self, s): sList=s.split();res=[] for w

qq_40992714的博客 1795

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

用递归函数将字符串逆序输出_leetcode 151. 翻转字符串里的单词(Medium)

###题目给定一个字符串,逐个翻转字符串中的每个单词。输入: "the sky is blue"输出: "blue is sky the"输入: " hello world! "输出: "world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。输入: "a good example"输出: "example good a"解释: 如果两个单词...

weixin_39984105的博客 428

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

leetcode151.翻转字符串里的单词

题目大意 给定一个字符串,逐个翻转字符串中的每个单词。 输入: "a good example" 输出: "example good a" 解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。 解题思路 方法一: 首先用双指针的方式确定每个单词的始末位置,然后将这个子串放入数组中。最后将数组中的单词反向串联即可。 class Solution { public: ...

大腿壮的博客 208

【leetcode面试经典150题】21. 反转字符串中的单词(C++)

本题来自【leetcode面试经典150题】21. 反转字符串中的单词(C++)

m0_74172965的博客 787

每日一题——力扣——反转字符串的单词III

题目来源于力扣——557. 反转字符串中的单词 III - 力扣(LeetCode) (leetcode-cn.com) 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例: 输入:"Let's take LeetCode contest" 输出:"s'teL ekat edoCteeL tsetnoc" 我们可以发现,一个句子的单词之间都是用空格隔开的 所以我们可以将一个句子分开处理,反转完第一个单词,再反转第二个单词,直至结束为止 首先,如果我们

爱编程的晖哥的博客 1356

力扣经典算法篇-17-反转字符串中的单词(逆序遍历,数组分割,正则表达式)

注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。使用正则表达式进行分割,\s可以表示1个或多个空格分隔,刚好分割后就不存在空字符串的数组。字符串逆序遍历,当遇到非空格时,插入临时字符串的头部,遇到空格,结束临时字符串的拼接。解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。解释:反转后的字符串中不能存在前导空格和尾随空格。给你一个字符串s ,请你反转字符串中单词的顺序。

weisian的博客 531

LeetCode151——翻转字符串里的单词

我的LeetCode代码仓:https://github.com/617076674/LeetCode 原题链接:https://leetcode-cn.com/problems/reverse-words-in-a-string/description/ 题目描述: 知识点:正则表达式 思路:利用正则表达式分割原字符串,再倒序输出即可 时间复杂度和空间复杂度均是O(n),其中n为原...

清风阁 451

剑指 Offer 58 - I. 翻转单词顺序 - 力扣(LeetCode)

剑指 Offer 58 - I. 翻转单词顺序 - 力扣(LeetCode)

Onwaier的博客 544

【算法千题案例】每日LeetCode打卡——84.反转字符串中的单词 III

算法题打卡:反转字符串中的单词 III。没有特别幸运,那么请先特别努力,别因为懒惰而失败,还矫情地将原因归于自己倒霉。所以说,树倒了,没有一片雪花是无辜的

努力前行,总会成为自己心中的那道光 5万+

精选力扣500题 第48题 LeetCode 151. 翻转字符串里的单词【c++详细题解】

目录1、题目2、思路3、c++代码 1、题目 给你一个字符串 s,逐个翻转字符串中的所有 单词 。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。 说明: 输入字符串 s 可以在前面、后面或者单词间包含多余的空格。 翻转后单词间应当仅用一个空格分隔。 翻转后的字符串中不应包含额外的空格。 示例 1: 输入:s = "the sky is blue" 输出:"blue is sky the" 示例 2: 输

林深不见鹿 的博客 3801

秋招刷题:【leetcode】将每个单词逆序输出即可

输入: "Let's take LeetCode contest"# 输出: "s'teL ekat edoCteeL tsetnoc"# 2. 遍历每个单词,将单词逆序输出并拼接到结果字符串中。# 1. 将字符串按空格分隔成单词数组。# 3. 最后返回结果字符串。# 将每个单词逆序输出即可。

C++,Java,Python,C#编程选手,偶尔刷刷leetcode 266
上一篇: 计算逆波兰式——Leetcode系列(一)
下一篇: 同一直线上最多的点的个数——Leetcode系列(三)
Hooting
博客等级 码龄17年 11粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值