题目:替换字符串中的空格为$$$。要求时间复杂度为O(N)
例如:将”talk is cheap show me the code”替换。
基本思想:
栗子:we are family
参考代码:
void ReplaceBlank(char string[], int length)
{
//length为字符串的总容量
if (string == NULL || length <= 0)
return;
//字符串实际长度
int actuallen = 0;
//空格个数
int blanknum = 0;
int i = 0;
while (string[i]!='\0')
{
if (string[i] == ' ')
blanknum++;
actuallen++;
i++;
}
//替换后的总长度
int newlen = actuallen + blanknum * 2;
if (newlen > length)
return;
int actualidx = actuallen;
int newidx = newlen;
while (actualidx>=0 && newidx>actualidx)
{
if (string[actualidx] == ' ')
{
string[newidx--] = '$';
string[newidx--] = '$';
string[newidx--] = '$';
}
else
{
string[newidx--] = string[actualidx];
}
actualidx --;
}
int j = 0;
while (j<newlen)
{
cout << string[j] << " ";
j++;
}
}