读入一个字符串,输出其最长数字串

读入一个字符串str,输出字符串str中连续最长的数字串

一个str,长度不超过255

示例:

   输入:

    abc123defg123456789hjfs123456

   输出:

      123456789


程序如下:

#include <stdio.h>
#include <string.h>
int main()
{
    int i,k,key,sum,max,len[300];
    char a[300];
    scanf("%s",a);
    for(int j=0;j<300;j++)  
    {    
        len[j]=0;
    }
    for(i=0;i<strlen(a);i++)
    {
        k=i;
        sum=0;
        while(a[i]>='0' && a[i]<='9')
	{
            i++;
            sum++;
        }
        len[k]=sum;    //将每个位置出现的数组串长度,保存在len[]中,没出现的为 0
    }
    max=0;
    for(i=0;i<strlen(a);i++)
    {
        if(max<len[i])
	{
            max = len[i];     //保存最长的数字串长度
            key = i;          //记录最长数字串, 初始地址
        }
    }
    for(i=0;i<max;i++)        //从key下标输出,max个数字
    {
        printf("%c",a[key++]);
    }
    printf("\0");
    printf("\n");
    return 0;
}


程序运行截图:



因为python内置多种函数和库,调用起来很方便

我们来看看用python来解这道题的代码:

import re
input_val = input()
split_char = re.split(r'\D*', input_val)
print(max(split_char, key=len))

        

猜你喜欢

转载自blog.csdn.net/weixin_41656968/article/details/80193468