剑指offer第二题:替换空格结题报告
2017-08-16 16:43
471 查看
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
分析:
完成题目功能很简单,但要考虑时间复杂度和空间复杂度,特殊情况处理等,首先计算处理后字符串的长度,然后从后往前遍历处理,遇到空格替换并移动尾指针,否则不替换,替换过程如下图所示,时间复杂度为O(n)。
代码:
class Solution { public: void replaceSpace(char *str,int length) { if(str == NULL) return; char * p = str; int len = strlen(str), blan 4000 kNum = 0; while(*p != '\0'){ if(*p == ' ') blankNum++; p++; } if(blankNum == 0) return; int newLen = len + (blankNum<<1); char * tail = str + newLen; while(p >= str){ if(*p == ' '){ *tail-- = '0'; *tail-- = '2'; *tail-- = '%'; }else{ *tail-- = *p; } p--; } } };
相关文章推荐
- java 剑指offer 第二题:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
- 剑指offer第二题 替换空格 Java实现
- java 剑指offer 第二题:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
- 牛客网_剑指offer_第二题替换空格_C++/C
- 剑指offer第二题替换空格 不用replace
- 剑指offer第二题【替换空格】c++实现
- 【剑指Offer】替换空格 解题报告
- 剑指Offer - 九度1510 - 替换空格
- [剑指Offer]6.替换空格
- 【剑指offer-解题系列(2)】替换空格
- 牛客网-剑指offer-替换空格
- 剑指offer 面试题4 替换空格
- 剑指Offer面试题:3.替换空格
- 剑指offer 面试题 (替换空格)(1)
- 剑指offer_数组---替换空格
- 剑指offer 2.3 数据结构4-替换字符串中的空格
- 剑指offer-替换空格
- 剑指Offer-替换空格
- 剑指Offer-5:替换字符串的空格
- 【剑指offer】将空格替换制定字符串