《剑指offer》字符串中的字符替换
来源:互联网 发布:旅游购物 知乎 编辑:程序博客网 时间:2024/05/21 06:47
一、题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
二、输入描述
char *str :字符串
int length : 字符串的长度
三、牛客网提供的类框架
//length为牛客系统规定字符串输出的最大长度,固定为一个常数class Solution {public: void replaceSpace(char *str,int length) { }};
四、解题思路
分两步
第一:先查找字符数组中有多少个空格,假设有n个空格。增加替换后数组的长度,因为一个空格用“%20”三个字符去替换,所以每个空格就会是数组增加2ge位置。
第二:字符数组从后面开始查找,如果遇到空格就使用“0”“2”“%”去替换,否则位置直接后移。
五、代码
//length为牛客系统规定字符串输出的最大长度,固定为一个常数class Solution {public: void replaceSpace(char *str,int length) { int newLength = length; for(int i = 0; i < length; i++) { if(str[i] == ' ') newLength += 2; } int newIndex = newLength - 1; for(int i = length - 1; i >= 0; i--) { if(str[i] == ' ') { str[newIndex--] = '0'; str[newIndex--] = '2'; str[newIndex--] = '%'; } else { str[newIndex--] = str[i]; } } }};
0 0
- 《剑指offer》字符串中的字符替换
- 【剑指offer】替换字符串中的空格_04
- 【剑指offer】替换字符串中的空格
- 剑指offer之替换字符串中的空格
- 替换字符--《剑指offer》
- 剑指offer--替换字符
- 【剑指offer】替换字符串
- 剑指offer-字符串替换
- 替换字符串中的特殊字符
- 替换字符串中的特殊字符
- 字符串中的部分字符替换
- replace替换字符串中的字符
- 剑指offer 2.3 数据结构4-替换字符串中的空格
- 剑指offer面试题4:替换字符串中的空格
- 【剑指offer】实现一个函数来替换字符串中的空格
- 【剑指offer】将字符串中的空格替换成"%20"
- 剑指Offer算法题之字符串替换字符--面试题4:替换空格
- 《剑指offer》-02字符串替换
- C语言:【动态顺序表】动态顺序表的初始化、打印、尾插PushBack、尾删PopBack
- C语言:【动态顺序表】动态顺序表的在指定位置插入元素Insert,以及指定元素Find
- 【C语言项目】注释转换
- 【String类浅拷贝的实现】C++:String类引用计数浅拷贝的两种实现
- 【String类】C++:String类的传统写法与现代写法
- 《剑指offer》字符串中的字符替换
- 【C++】实现动态顺序表的PushBack(),PopBack(),PushFront(),PopFront(),Find(),Insert
- 【C++】用类实现单向单链表的尾插PushBack(),尾删PopBack(),打印PrintSlist()。
- 【C++】实现双向链表的所有操作,包括逆置双链表(三种方法)
- 【C语言】单链表的所有操作的实现(包括PopBack、PushBack、PopFront、PushFront、Insert)
- 【继承与多态】C++:继承中的赋值兼容规则,子类的成员函数,虚函数(重写),多态
- 【C++】模版类实现普通类静态顺序表
- 【C++】认识模版函数
- 【C++】模版实现双向链表的各种操作(如:逆置、去重Unique、分类(冒泡)、合并)