问题描述:
请实现一个函数,把字符串的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。
实现代码如下:
#include <stdio.h>
#include <stdlib.h>
#include<String.h>
void replace(char *ch,int len){
int i,count=0;
for(i=0;i<len;i++){
if(ch[i]==' ')
count++;
}
char *p2=ch+len+2*count+1;
char *p1=ch+len+1;
int length = len+1;
while(length--){
if(*p1==' '){
*p2='0';
p2--;
*p2='2';
p2--;
*p2='%';
}else{
*p2=*p1;
}
p1--;
p2--;
}
}
int main(int argc, char *argv[])
{
char ch[]="we are fimaly!";
int len=strlen(ch);
replace(ch,len);
printf("%s\n",ch);
return 0;
}
这个算法的时间复杂度是:O(n)
参考资料:
剑指offer
备注:
转载请注明出处:http://blog.csdn.net/wsyw126/article/details/51366226
作者:WSYW126