题解 | #在字符串中找出连续最长的数字串#

在字符串中找出连续最长的数字串

http://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec

C语言解法
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 205
typedef struct{
    char *pa;
    int num;
}Number;
int main()
{
    char str[SIZE]={'\0'};
    while(fgets(str,SIZE,stdin)!=NULL){
        char *p=strchr(str,'\n');
        *p='\0';
        Number trace[200];
        int i,j,k=1,h=0,len=strlen(str),maxlen=0;
        for(i=0;i<len;){
            if(str[i]>='0'&&str[i]<='9'){
                trace[h].pa=&str[i];
                for(j=i;j<len;j++){
                    if(str[j+1]>='0'&&str[j+1]<='9'){
                        k++;
                    }
                    else{
                        maxlen=maxlen>k?maxlen:k;
                        i+=k;
                        break;
                    }
                }
                trace[h++].num=k;
                k=1;
            }
            else{
                i++;
            }
        }
        for(i=0;i<h;i++){
            if(trace[i].num==maxlen){
                for(j=0;j<maxlen;j++){
                    printf("%c",*(trace[i].pa+j));
                }
            }
        }
        printf(",%d\n",maxlen);
    }
}

全部评论

相关推荐

沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务