百度2010校招算法题之最大数字串

代码编写

完成函数:
  int maxnumstr(char *inputstr, char *outputstr)
 
函数功能:找出inputstr中的最长连续数字串存储到outputstr里并返回长度,如调用maxnumstr("123abc1234a",
outputstr)后返回4且outputstr中为"1234"。

 

代码实现:(未验证正确性)

int maxnumstr(char *inputstr, char *outputstr)
{
    int i,j,count,max=-1;
    char *p,*pmax;

    for(i=0;inputstr[i]!='\0';i++)
    {
        count=0;
        while(inputstr[i]<='9' && inputstr[i]>='0')
        {
            if(count==0)
                  p=inputstr+i;
            i++;
            count++;
        }
        if(count>=max)
        {
            max=count;
            pmax=p;
        }
    }

    for(j=0;*(pmax+j)!='\0';j++)
          *(outputstr+j)=*(pmax+j);

    *(pmax+j)='\0';    

    return max;
}         //时间复杂度O(n)

 

 

posted on 2012-07-18 13:33  as_  阅读(1331)  评论(0编辑  收藏  举报

导航