面试笔记2(字符替换)

替换空格:实现一个函数,把字符串中的每个空格替换成“%20”。栗子:输入“We are happy”,则输出“We%20are%20happy.”。

程序:

void RepalceBlank(char string[],int lenth)
{
  if(string==nullptr||lenth<=0)
     return;
      int originalLenth=0;
      int numberOfBlank=0;
      int i=0;
      while(string[i]!='\0')
      {
         ++originalLenth;
         if(string[i]=='')
         ++numberOfBlank;
         ++i;
      }
  int newLenth=originalLenth+numberOfBlank*2;
  if (newLenth>originalLenth)
     return;
    int indexOfOriginal=originalLenth;
    int indexOfNew=newLenth;
    while(indexOfOriginal>=0&&indexOfNew>indexOfOriginal)
    {
      if(string[indexOfOriginal]=='')
             {
                 string[indexOfNew--]='0';
                 string[indexOfNew--]='2';
                 string[indexOfNew--]='%';
            
             }      
             else
             {
                string[indexOfNew--]=string[indexOfOriginal];
             }
             --indexOfOriginal;
    }

}

 

可画出示意图来表示清楚意图。

相似题目:有两个排序的数组A1和A2,内存 在A1的末尾有足够的空余空间容纳A2。请实现一个函数,把A2中的所有数字插入A1中,并且所有额数字是排序的。

  在合并的两个数组的时候,很多人首先想到是在A1 中从头到尾复制数字,但这样就会出现多次复制一个数字的情况。更好的办法是从头到尾比较A1和A2中的数字,并把较大的数字复制到A1中的合适的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值