【剑指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 };

浙公网安备 33010602011771号