剑指 Offer —— 58.翻转单词

简介: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am astudent. “,则输出"student. a am I”。

image.png

实战大门题目链接

这到题在剑指Offer里身价从中等降到了简单,可见这Offer不是那么简单搞到的,如题目要要求,需要反序反序输出语句,但是单词本身顺序不变。

源码分析👏

char* reverseWords(char* s){
int len = strlen(s);
char* arr =(char*) malloc(sizeof(char)* (len+1));
char* brr =(char*)malloc(sizeof(char)*(len+1));
int a = 0;
int b = len-1;
int c = 0;
while(b>=0)  //逆序遍历
{
    while((b>=0)&&*(s+b)!=' ')  //逐个找出单词
    {
        *(brr+a)=*(s+b);  //将找到的单词存进brr数组中
        a++;
        b--;
    }
    a--;
    if(c > 0)
    {
      *(arr+c) = ' ';
      c++;  //计数空格
    }
    while(a>=0)
    {
        *(arr+c)=*(brr+a);
        a--;
        c++;
    }   //将brr数组信息转到数组arr中
    a=0;
    while(b>=0&&*(s+b)==' ')  //移除s的空格
    {
       b--;
    }
}
*(arr+c)='\0';  //添加结束标志
free(brr);  //释放数组brr
return arr;
}

这里我们的基本思路依然采用双指针,malloc时多一位保证空间足够,我们既然要逆序输出就直接逆序读取,强调一下C语言对空间的要求十分敏感,这也是后面释放brr数组的原因,很容易造成堆栈,栈溢出问题,所以要谨慎细节。

相关文章
|
安全 API CDN
搭建Vue3组件库:第十五章 如何编写README文档
本章介绍如何正确编写项目的README文档
1266 0
搭建Vue3组件库:第十五章 如何编写README文档
|
域名解析 JSON 测试技术
常见移动端APP测试场景
常见移动端APP测试场景
496 0
|
7月前
|
数据采集 人工智能 安全
|
8月前
|
JSON API 开发工具
亚马逊API接口的应用场景介绍
亚马逊API(如AWS与SP-API)基于RESTful架构,支持HTTP协议及JSON/XML格式,实现云服务自动化、电商管理、数据分析与创新应用开发。通过SDK调用,可集成CI/CD、同步库存、生成报表,并构建微服务。技术优势包括高效自动化、低延迟响应与高可扩展性,助力企业实现系统集成与业务创新。(238字)
|
6月前
|
缓存
CentOS8.5换源全攻略(从报错到搞定,小白也能看懂)
本文详解CentOS8.5更换yum源全过程,针对常见报错提供解决方案。通过备份原文件、配置阿里云等国内镜像源,快速解决软件下载慢、元数据获取失败等问题,提升系统性能。步骤清晰,小白也能轻松完成换源操作,确保系统稳定高效运行。(238字)
五、ArkTS 常用组件-文本显示 (Text / Span)
本文档介绍了ArkTS中的文本显示组件(Text/Span),包括其基本概念、参数设置、常用属性(如字体大小、粗细、颜色、对齐方式)、最大行数及超长处理方法,以及子组件Span的使用方法。Text组件支持多种参数类型,包括字符串、资源引用等,并提供了丰富的属性设置选项以满足不同的文本显示需求。Span组件则主要用于在Text组件内部实现更精细的文本格式化,如设置不同的字体颜色、大小、装饰线等,同时支持点击事件的添加。
1250 2
|
JSON 安全 JavaScript
Web安全-JQuery框架XSS漏洞浅析
Web安全-JQuery框架XSS漏洞浅析
4071 3
|
缓存 Linux 编译器
【C++】CentOS环境搭建-安装log4cplus日志组件包及报错解决方案
通过上述步骤,您应该能够在CentOS环境中成功安装并使用log4cplus日志组件。面对任何安装或使用过程中出现的问题,仔细检查错误信息,对照提供的解决方案进行调整,通常都能找到合适的解决之道。log4cplus的强大功能将为您的项目提供灵活、高效的日志管理方案,助力软件开发与维护。
833 0
|
开发工具 图形学
【推荐100个unity插件之11】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件
【推荐100个unity插件之11】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件
3131 0
|
Ubuntu Linux Shell
【linux】PetaLinux 2024.1安装笔记
【linux】PetaLinux 2024.1安装笔记
2753 0