LeetCode 面试题05. 替换空格

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

 

示例 1:

输入:s = "We are happy."
输出:"We%20are%20happy."

 

限制:

0 <= s 的长度 <= 10000

思路:先将字符串中所有的空格统计出来,然后利用malloc开辟一段连续空间,利用遍历将所有的空格替换,返回。代码如下:

 1 char* replaceSpace(char* s){
 2     int i,j=0,count=0;
 3     for(i=0;s[i]!='\0';i++){
 4         if(s[i]==' '){
 5             count++;
 6         }
 7     }
 8     char* r;
 9     r=(char*)malloc((count*2+strlen(s)+1)*sizeof(char));
10     for(i=0;i<strlen(s);i++){
11         if(s[i]!=' '){
12             r[j++]=s[i];
13         }else{
14             r[j++]='%';
15             r[j++]='2';
16             r[j++]='0';
17         }
18     }
19     r[j]='\0';
20     return r;
21 }

 

posted @ 2020-04-08 20:42  莴苣&  阅读(162)  评论(0编辑  收藏  举报