剑指Offer 替换空格

题目描述

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
 
思路:
替换空格,先遍历一遍记录字符串中空格数量,算出替换后字符串长度,从后往前替换。
 
 1 //length为牛客系统规定字符串输出的最大长度,固定为一个常数
 2 class Solution {
 3 public:
 4     void replaceSpace(char *str,int length) {
 5         int i,p,q;
 6         int oldCount,spaceCount;
 7         
 8         i=oldCount=spaceCount=0;
 9         
10         while(str[i]!='\0')
11         {
12             oldCount++;
13             if(str[i]==' ')
14                 spaceCount++;
15             i++;            
16         }
17         int newLength=oldCount+spaceCount*2;
18                 
19         p=oldCount;
20         q=newLength;
21                 
22         while(p>=0)
23         {
24             if(str[p]==' ')
25             {
26                 str[q--]='0';
27                 str[q--]='2';
28                 str[q--]='%';                
29             }
30             else
31                 str[q--]=str[p];
32             
33             p--;
34         }
35     }
36 };

 

posted @ 2016-08-10 11:14  SeeKHit  阅读(221)  评论(0编辑  收藏  举报