首页 > 代码库 > 空格替换

空格替换

空格替换 

设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。

你的程序还需要返回被替换后的字符串的长度。

 注意事项

如果使用 Java 或 Python, 程序中请用字符数组表示字符串。

样例

对于字符串"Mr John Smith", 长度为 13

替换空格之后,参数中的字符串需要变为"Mr%20John%20Smith",并且把新长度 17 作为结果返回。

挑战 

在原字符串(字符数组)中完成替换,不适用额外空间

标签 
字符串处理 Cracking The Coding Interview

 

 1 class Solution {
 2 public:
 3     /**
 4      * @param string: An array of Char
 5      * @param length: The true length of the string
 6      * @return: The true length of new string
 7      */
 8     int replaceBlank(char string[], int length) {
 9         // Write your code here
10         int blank_count = 0;
11         int new_length = length;
12         int i;
13         for(i=0; i<length; i++)  {
14             if(string[i] == 32) {
15                 blank_count++;
16                 new_length += 2;
17             }
18         }
19 
20         for(i=length-1; i>=0; i--)  {
21             if(string[i] != 32)  {
22                 string[i+blank_count*2] = string[i];
23             }
24             else  {
25                 string[i]   = %;
26                 string[i+1] = 2;
27                 string[i+2] = 0;
28                 i+=3;
29                 blank_count--;
30             }
31         }
32         return new_length;
33     }
34 };  

 

空格替换