Leetcode557. 反转字符串中的单词 III

Redis架构演进:从主从、哨兵到集群,如何支撑亿级流量的秒杀场景? 本文深入探讨了分布式缓存Redis的三种核心高可用模式:主从复制、哨兵模式与集群模式。以高并发的电商秒杀业务为切入点,我们分析了每种模式的优缺点和适用场景,并最终选择Redis集群模式作为最佳解决方案。文章提供了基于Spring Boot和Spring Data Redis的完整实现代码,详细展示了如何配置和使用Redis集群来应对高并发、高可用的挑战,旨在帮助开发者在实际项目中做出正确的技术选型和架构设计。 阅读详情

Every day a leetcode

题目来源:557. 反转字符串中的单词 III

解法1:模拟

将句子拆分,将每个单词逆置后,再拼接成新字符串。

这种做法需要使用额外存储空间。

代码:

void swap(char *a,char *b)
{
    char temp=*a;
    *a=*b;
    *b=temp;
}
void reverse(char *word)
{
    int left=0;
    int right=strlen(word)-1;
    while(left<=right)
    {
        swap(&word[left++],&word[right--]);
    }
}
char * reverseWords(char * s){
    int len=strlen(s);
    char *ans=calloc(len+6,sizeof(char));
    char split[2]=" ";
    char *word=strtok(s,split);
    while(word)
    {
        reverse(word);
        memcpy(ans+strlen(ans),word,strlen(word));
        strcat(ans,split);
        word=strtok(NULL,split);
    }
    ans[len]='\0';
    return ans;
}

结果:
在这里插入图片描述

解法2:双指针就地逆置

直接在原字符串上进行操作,避免额外的空间开销。

当找到一个单词的时候,我们交换字符串第一个字符与倒数第一个字符,随后交换第二个字符与倒数第二个字符……如此反复,就可以在原空间上翻转单词。

代码:

void swap(char *a,char *b)
{
    char temp=*a;
    *a=*b;
    *b=temp;
}
char * reverseWords(char * s){
    int len=strlen(s);
    int i=0;
    while(i<len)
    {
        int start=i;
        //找当前单词的末尾
        while(i<len && s[i]!=' ') i++;
        int left=start;
        int right=i-1;
        while(left<right)
        {
            swap(&s[left++],&s[right--]);
        }
        //找下一个单词的开头
        while(i<len && s[i] == ' ') i++;
    }
    return s;
}

结果:
在这里插入图片描述

超声波雷达探测车位及信号处理方法 在APA泊车中用到了超声波雷达,第一次接触,总结研究之。 阅读详情

相关推荐

BODAS说明书的中文版与相关资料总结

花了三天时间配了控制器的接线口,找了软件安装的一套东西。 又花了一周时间零零散散在网上只找到关于控制器少得可怜的资料: 1.力士乐控制器RC6系列介绍 2.力士乐控制器手册不完整版 3.RC6-9程序下载 力士乐配套的只有德语和英语两版,人工翻译专业文件的价格太惊人,决定自己写一版方便大家。有不正之处欢迎指出。 For these controllers, in the event of an...

我的技术日常 6497

LeetCode 力扣 557. 反转字符串中的单词 III reverse Words In A String III

大家觉得写还可以,可以点赞、收藏、关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录557. 反转字符串中的单词 III题目描述示例:提示:朴素版本原地解法提交结果 557. 反转字符串中的单词 III 题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例: 输入:"Let's take LeetCode contest" 输出:"s'teL ekat edoCteeL t

motongxue的博客 257

学术报告系列(二) - 智能自主作业机器人感知与控制技术及发展趋势

收集整理于2022年模式识别高峰论坛湖南大学王耀南院士报告(报名题目:智能自主作业机器人感知与控制技术及发展趋势)

Make something people want. 4699

LeetCode 557. 反转字符串中的单词 III

给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

Edison's 小宇宙 1万+

java 二维码生成及其标签打印

本文主要内容 二维码生成 二维码标签预览及打印 二维码生成 笔者此次的二维码是通过调用第三方接口生成的,具体流程如下: 根据规范要求调用第三方接口,返回二维码下载地址及二维码图片的属性值(图片大小等) 根据返回的值获取二维码下载地址,根据地址下载二维码图片,保存至本地磁盘及记录数据信息 扫描二维码跳转相应地址,显示资产的基本信息 最终生成的二维码如下图所示: 预览并批量打印二维码标签 先...

孙小牟的博客 4945

STM32F4串口接收ATGM336H GPS数据,手把手教你解析NMEA协议并转换经纬度格式

本文详细介绍了如何使用STM32F4开发板通过串口接收ATGM336H GPS模块的NMEA协议数据,并解析GNRMC语句获取经纬度信息。内容涵盖硬件连接、NMEA协议深度解析、数据校验实现以及经纬度格式转换的数学原理与代码实现,为嵌入式开发者提供完整的GPS数据处理解决方案。

weixin_42522575的博客 499

#力扣 LeetCode557. 反转字符串中的单词 III @FDDLC

题目描述: 557. 反转字符串中的单词 III - 力扣(LeetCode) (leetcode-cn.com) Java代码: class Solution { //在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 public String reverseWords(String s) { //StringBuilder if(s==null||s.length()<2)return s; StringBuffer S=.

LiuXingchang的博客 465

成本中心(CO)和利润中心(PCA)是管理会计模块的核心组件

SAP中成本中心(CO)和利润中心(PCA)凭证处理存在差异:①外部交易(如费用支付、销售)会生成FI借贷凭证;②内部成本分摊和转移仅产生CO/PCA管理凭证,通过次级成本要素或利润中心转移科目记录,不涉及FI模块。核心区别在于是否涉及企业实际收支:实际收支触发FI凭证,内部核算仅生成管理会计凭证。系统通过这种机制实现财务会计与管理会计的集成与分离。

金牌架构师 1130

LeetCode 557: 反转字符串中的单词 III

目录LeetCode 557: 反转字符串中的单词 III题目描述解题双指针+逐单词反转借助stack反转单词反转字符串+stack/deque LeetCode 557: 反转字符串中的单词 III 题目描述 解题 双指针+逐单词反转     很直观地,双指针确定每个单词的范围,然后逐个单词反转就够了。     反转的时候可以借助reverse函数: class Solution { public: string reverseWords(string s) { for (int

s_Shune 361

RK3588之内存带宽计算及达成率

本章来和大家介绍一下内存带宽的计算与达成率

文艺小少年的博客 1816

Qt QCustomPlot 图形库详解及使用

QCustomPlot 是一个开源的 Qt C++ 库,专门用于创建数据图表。易于集成到 Qt 项目中。支持多种图表类型,如折线图、散点图、条形图等。提供丰富的交互功能,如缩放、平移、选择和拖动。高度可定制,支持图形的各种样式设置。// 添加第一条曲线i < 101;++i) {// 设置曲线颜色// 添加第二条曲线i < 101;++i) {// 设置曲线颜色// 设置散点样式// 添加图例。

MusicScore的博客 766

LeetCode:557. 反转字符串中的单词 III(python)

LeetCode:557. 反转字符串中的单词 III(python) 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入: “Let’s take LeetCode contest” 输出: “s’teL ekat edoCteeL tsetnoc” 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 LeetC...

wk的博客 826

c# 如何使用S7NET 读取汇川H5U的数据

本文介绍了两种使用C#读取汇川H5U PLC数据的方法。第一种通过ModbusTCP协议(推荐),使用NModbus库实现,步骤包括配置PLC的Modbus服务器功能、安装库及编写读取保持寄存器的代码。第二种针对兼容西门子S7协议的型号,使用S7NetPlus库直接读取。文章强调需注意地址映射关系、协议配置及网络设置,并建议优先采用ModbusTCP方案以确保稳定性。两种方法均提供了完整的代码示例,帮助开发者快速实现在C#环境下与汇川H5U PLC的通信。

StevenChen的博客 457

LeetCode - 557. 反转字符串中的单词 III

如果字符串不以空格结尾,最后一个单词不会被处理。

2402_83315537的博客 605

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

leetcode 557:反转字符串中的单词 III(python)

腾讯精选练习(50 题)Day50 || leetcode 557:反转字符串中的单词 III(python)

nanashi_F的博客 393

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Leetcode 557. 反转字符串中的单词 III C++

Leetcode 557. 反转字符串中的单词 III 题目 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例: 输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc" **注意:**在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 题解 获取单词,反转单词,重复这个过程。详细过程见代码 代码 string reverseWords(string s) {

weixin_43750513的博客 241

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LeetCode557. 反转字符串中的单词III

LeetCode557. 反转字符串中的单词III参考代码 参考代码 class Solution { public: string reverseWords(string s) { //使用指针的方法 int len = s.size(); int start = 0, end = 0; while( start < ...

坚果 166

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

反转字符串中的单词 III 时间:2020年8月30日 知识点:字符串 题目链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/ 题目 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例1 输入: “Let’s take LeetCode contest” 输出: “Let’s take LeetCode contest” 解法 逆序输出字符 创建stack 本地修改 代码 #inc

cjl的博客 338

leetcode557:反转字符串中的单词 III

任务六 leetcode557:反转字符串中的单词 III 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入: “Let’s take LeetCode contest” 输出: “s’teL ekat edoCteeL tsetnoc” 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 class Solutio...

weixin_43828421的博客 329

leetcode 557. 反转字符串中的单词 III

leetcode 557. 反转字符串中的单词 III 题目详情 题目链接 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例: 输入:"Let’s take LeetCode contest"输出:“s’teL ekat edoCteeL tsetnoc” 提示: 在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 我的代码 class Solution { public: string reverseWords(strin

qq_33789406的博客 133

LeetCode面试算法-力扣 557. 反转字符串中的单词 III

557. 反转字符串中的单词 III 题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 说明:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 示例 1: 输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc" 分...

牧野飞鸿的博客 471

LeetCode实战:557. 反转字符串中的单词 III

LeetCode实战:557. 反转字符串中的单词 III 题目 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 来源:力扣(Le...

weixin_43250252的博客 155

Leetcode刷题(557. 反转字符串中的单词 III)

Leetcode刷题(557. 反转字符串中的单词 III)一.题目二.代码(C)三.提交记录四.备注 一.题目 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入: “Let’s take LeetCode contest” 输出: “s’teL ekat edoCteeL tsetnoc” 注意:在字符串中,每个单词由单个空格分隔,并且字...

Umbraner的博客 304

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

每日必刷——LeetCode 557. 反转字符串中的单词 III题解

557. 反转字符串中的单词 III 难度:简单 链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/ 传送门????反转字符串中的单词III 一.问题描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单

#两个西柚 331

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

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

weixin_29195217的博客 1590
上一篇: Leetcode344. 反转字符串
下一篇: Leetcode面试题 02.08. 环路检测
UestcXiye
博客等级 码龄8年 9031粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值