1. 程式人生 > >挑戰資料結構和演算法面試題——連續最長數字串

挑戰資料結構和演算法面試題——連續最長數字串

題目來源“資料結構與演算法面試題80道”。在此給出我的解法,如你有更好的解法,歡迎留言。

這裡寫圖片描述

問題分析:字串的處理,判斷每一位是不是數字,用到了函式isdigit

方法:

int continumax(char *outputstr, char * inputstr){
    if (NULL == inputstr) return 0;

    char *p = inputstr;
    char *q = inputstr;// 記錄最長字串的開始
    int length = 0;
    int max_len = 0;// 記錄最大的長度
    while(*p != '\0'
){ if (!isdigit(*p)){ length = 0; p ++; continue; } length ++; if (length > max_len){ max_len = length; q = p - length + 1; } p ++; } int i = 0; for (i = 0; i < max_len; i++){ outputstr[i] = *q
; q ++; } outputstr[i] = '\0'; return max_len; }