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

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

题目描述

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

思路:

首先改函数形参,改为引用传入

void replaceSpace(char *&str,int length)

space记录空格数,new一个length+2*space+1的指针数组,再循环str,如果str[j]不是空格,就直接赋值,k++;如果是空格,则将%、2、0赋值给s,同时k+=3。

代码实现:

class Solution {
public: void replaceSpace(char *&str,int length) { int space=0; for (int i = 0; i < length; i++){
//循环记录空格的数量 if (str[i] == ' '){ space++; } } char *s = new char[length + space * 2+1];//new新空间,用来存替换空格后的字符串 int k=0; for (int j = 0; j < length; ++j){ if (str[j] != ' '){
//如果str[j]不是空格,就直接赋值,k++ *(s+k) = str[j]; k++; } if (str[j] == ' '){
//如果是空格,则将%、2、0赋值给s,同时k+=3 *(s+k) = '%'; *(s+k + 1) = '2'; *(s+k + 2) = '0'; k += 3; } } *(s + k + 1) = '\0';//C语言风格字符串末尾要是'\0' str = s;//将str指向s }};

结果是:运行时间: <1 ms 占用内存:9536K 状态:答案正确

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

你可能感兴趣的文章
2017年,这一次我们不聊技术
查看>>
实现接口创建线程
查看>>
Java对象序列化与反序列化(1)
查看>>
HTML5的表单验证实例
查看>>
JavaScript入门笔记:全选功能的实现
查看>>
程序设计方法概述:从面相对象到面向功能到面向对象
查看>>
数据库事务
查看>>
JavaScript基础1:JavaScript 错误 - Throw、Try 和 Catch
查看>>
SQL基础总结——20150730
查看>>
SQL join
查看>>
JavaScript实现页面无刷新让时间走动
查看>>
CSS实例:Tab选项卡效果
查看>>
前端设计之特效表单
查看>>
前端设计之CSS布局:上中下三栏自适应高度CSS布局
查看>>
Java的时间操作玩法实例若干
查看>>
JavaScript:时间日期格式验证大全
查看>>
pinyin4j:拼音与汉字的转换实例
查看>>
XML工具代码:SAX从String字符串XML内获取指定节点或属性的值
查看>>
时间日期:获取两个日期相差几天
查看>>
责任链模式 Chain of Responsibility
查看>>