天天看點

讀入一個字元串,輸出其最長數字串

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

繼續閱讀