剑指offer里面的解法,主要考察对数组类数据结构的理解
P.S.
- 在字符串的末尾一定要加上’\0’
- malloc与realloc的区别
代码耗时、内存及源代码:
char* replaceSpace(char* s){
if(s==NULL)
{
return 0;
}
int numberOfBlank=0;
int i=0;
int originalLength=0;
while (s[i] != '\0')
{
originalLength++;
if (s[i] == ' ')
{
numberOfBlank++;
}
i++;
}
int newLength = numberOfBlank * 2 + originalLength;
int m = originalLength;
int n = newLength;
s = (char*) realloc (s, sizeof(char)*(newLength+1));
while (m >= 0 && n > m)
{
if (s[m] == ' ')
{
s[n--] = '0';
s[n--] = '2';
s[n--] = '%';
}
else
{
s[n--] = s[m];
}
m--;
}
return s;
}