cherrychenlee

导航

 

原文地址:https://www.jianshu.com/p/bc3f24f987f8

时间限制:1秒 空间限制:32768K

题目描述

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

我的代码

class Solution {
public:
	void replaceSpace(char *str,int length) {
        //length为分配给str的总长度值
        if(str==nullptr || length<1)
            return;
        int strLen=0,spaceNumber=0;
        while(*(str+strLen)!='\0'){
            if(*(str+strLen)==' ')
                spaceNumber++;
            strLen++;
        }
        int oldLen=strLen,newLen=strLen+2*spaceNumber;
        if(newLen+1>length)
            return;
        while(oldLen>=0 && newLen>oldLen){
            if(str[oldLen]==' '){
                str[newLen--]='0';
                str[newLen--]='2';
                str[newLen--]='%';
            }
            else
                str[newLen--]=str[oldLen];
            oldLen--;
        }
       while(oldLen>=0){
                str[newLen--]=str[oldLen--];
       }
       return; 
	}
};

运行时间:5ms
占用内存:588k

posted on 2019-04-26 16:39  cherrychenlee  阅读(65)  评论(0编辑  收藏  举报