题目:实现一个函数,把字符串中每个字符空格替换为"%20",例如输入"we are happy",替换为"we%20are%20happy"。
剑指offer p45给出了O(n)的解法,原理就是预先计算出替换后的字符长度,然后把从后向前把前面的复制到后面。
-
void replaceBlack(char *str)
-
{
-
int len, i, blank = 0, j;
-
len = strlen(str);
-
for(i = 0; i < len; i++)
-
if(str[i] == ' ')
-
blank++;
-
-
for(i = len, j = len + blank * 2; i >= 0; i--)
-
{
-
if(str[i] == ' ')
-
{
-
str[j--] = '0';
-
str[j--] = '2';
-
str[j--] = '%';
-
}
-
else
-
{
-
str[j--] = str[i];
-
}
-
}
-
}
阅读(1850) | 评论(0) | 转发(0) |