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