您的位置:首页 > 其它

用“%20”取代字符串中空格的时间复杂度为O(n)的算法

2013-10-16 23:09 239 查看
/*length 为字符串数组string的总容量*/
void ReplaceBlank(char stringp[],int length)
{
if(string==NULL &&length<=0)
return;

/*originalLength 为字符串string的实际长度*/
int originalLength=0;
int numberOfBlank=0;
int i=0;
while(string[i] !='\0')
{
++originalLength;

if(string[i]==' ')
++numberOfBlank;
++i;
}

/*newlength 为把空格替换成%20之后的长度*/
int newLength=originalLength+numberOfBlank*2;
if(newLength >length)
return;

int indexOfOriginal = originalLength;
int indexOfNe = newLength;
while(indexOfOriginal >=0 && indexOfNew >indexOfOriginal)
{
if(string[indexOfOriginal] ==' ')
{
string[indexOfNew --] ='0';
string[indexOfNew --] ='2';
string[indexOfNew --] ='%';
}
else
{
string[indexOfNew --]=string[indexOfOriginal];
}

--indexOfOriginal;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐