剑指offer 《替换空格》
Posted missidiot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer 《替换空格》相关的知识,希望对你有一定的参考价值。
本题来自《剑指offer》 替换空格
题目:
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路:
方案一:空间优先,在原数组的基础上进行替换,没替换一次就将后面的字符串向后挪两个位置
step1:查询空格的个数,在此基础上申请空格数两倍的位置
step2:从后面向前遍历,如果遇到空格就加入‘’02%‘’,否则就继续挪动非空格字符,直到空格遍历完。代码采用了c++编程
方案二:可申请额外的空间,当遇到空格就替换成‘%20‘,采用python编程。
C++ Code:
class Solution { public: void replaceSpace(char *str,int length) { if (str == NULL || length <= 0){ //审核为空或者length小于0直接返回 return ; } int originallLength = 0; //定义数组原始长度 int numberOfBlank = 0; //定义空格的长度 int i = 0; while (str[i] != ‘