【剑指offer】替换空格

思路:

统计空格数,算出替换后串的大小,从最后一个开始往后移动,遇到空格,替换为"%20"。

(在串的最后面设置结束符'\0')

 1 class Solution {
 2 public:
 3     void replaceSpace(char *str,int length) {
 4         int len_str=0,count_blank=0;
 5         int i=0;
 6         while(str[i]!='\0')
 7         {
 8             if(str[i]==' ')
 9                 count_blank++;
10             len_str++;
11             i++;
12         }
13         int new_len=len_str+2*count_blank;
14         str[new_len]='\0';
15         int back=new_len-1;
16         for(i=len_str-1;i>=0;i--)
17         {
18             if(str[i]!=' ')
19             {
20                 str[back]=str[i];
21                 back--;
22             }
23             else
24             {
25                 str[back]='0';
26                 str[back-1]='2';
27                 str[back-2]='%';
28                 back=back-3;
29             }
30         }
31 
32     }
33 };

 

posted @ 2020-04-21 21:49  刘小脑袋  阅读(95)  评论(0)    收藏  举报