讀入一個字元串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))