您的位置:首页 > Web前端

字符串替换--替换字符串中的空格为$$$。要求时间复杂度为O(N)

2017-07-19 00:09 447 查看
思路:

先遍历一遍字符串找出空格的数目,有空格则把空格数+1.

两个指针,一个指向原字符串结尾,一个指向替换后的字符串末尾。替换后的字符串长度等于原字符串长度+2*空格数。

循环结束的条件是oldend=newend,就停止循环。

char* Repalce (char * str )
{
int blank = 0;
int newlen = 0;
int oldlen = strlen( str);
for ( int i = 0; i < oldlen; ++ i)
{
if (*( str + i) == ' ')
blank++;
}

newlen = oldlen + 2 * blank;
char* newend = str + newlen;
char* oldend = str + oldlen;

while ( oldend < newend)
{
if (* oldend == ' ')
{
for ( int i = 1; i <= 3;++ i)
* newend-- = '$';
oldend--;
}
else{
* newend-- = * oldend--;
}
}
return str;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐