博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer之替换空格
阅读量:4147 次
发布时间:2019-05-25

本文共 874 字,大约阅读时间需要 2 分钟。

题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

思路: 如果从头往后替换则空格后边的字符串需要集体后移,会大量消耗时间;因此,采用从后向前替换,则需要先求出新字符串的长度,只要求出空格个数则能求出新字符串长度。因此,先求空格个数,再求新字符串长度,然后从后向前替换。

代码:

class Solution {public:	void replaceSpace(char *str,int length) {        //判断str是否为空        if(str==NULL || length<=0)            return;        //首先计算空字符的个数        int blankNum=0;         int len=0;//除了空格字符长度        for(int i=0;str[i]!='\0';i++){            len++;            if(str[i]==' ')                blankNum++;        }        //新字符串        int newLength=len+blankNum*2;        if(newLength<=len) //无空格则不更新            return;        for(int i=len,j=newLength;i>=0;i--)            {            if(str[i]!=' ')                str[j--]=str[i];            else{                str[j--]='0';                str[j--]='2';                str[j--]='%';            }        }	}};

转载地址:http://gmjti.baihongyu.com/

你可能感兴趣的文章
spring cloud config 报错,java.io.EOFException: Short read of block
查看>>
filebeat安装配置-简单版
查看>>
spring-cloud-config 突然报错 cannot open git-upload-pack
查看>>
oauth2.0 使用redis 缓存client token,导致redis内存爆了 -线上问题解决
查看>>
记录线上问题:服务器docker进程卡死了,打任何命令都无反应,最终是linux内核bug导致的
查看>>
vue devtools 安装使用(用源码构建)
查看>>
Oracle视图关联jpa失败,可以通过创建同义词解决
查看>>
Mac苹果电脑 安装virtualBox
查看>>
Nexus安装搭建和上传本地jar 详细笔记
查看>>
代码质量管理-Sonar 使用手册
查看>>
搭建spring cloud oauth2.0 出现ExpressionUrlAuthorizationConfigurer already built object
查看>>
spring-kafka 出现Could not autowire. No beans of 'KafkaTemplate
查看>>
IntelliJ Idea 常用快捷键列表
查看>>
(转载)解决mydql执行sql文件时报Error: Unknown storage engine 'InnoDB'的错误。
查看>>
Hybris Commerce 使用IntelliJ IDEA时的DEBUG指南
查看>>
Kettle5.4统计各部门工资总额
查看>>
MapReduce之日志分析
查看>>
Kettle5.4利用mapreduce格式化日志(预处理)
查看>>
与你们一起的那些时光
查看>>
import和require有什么区别?export和exports呢?
查看>>