读入一个字符串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))