数字のPTA-JMU-DS-最も長いシーケンス(C言語版)

原題:

入力文字列、およびデジタル・シーケンス発生の最も長い連続した文字列の開始位置をシークの長さ。

入力フォーマット:

文字列を入力し、スペースを含めることができます。

出力フォーマット:

コンテンツを出力:スペースで区切られた位置と長さを起動番号の最長シーケンス。出力は、末尾のスペースを。空の文字列の入力、出力「NULL」

サンプル入力:

123ab12345a

出力例: 

5 5

実際、あなたは、シンプルで便利なの配列を得るために行うことができますが、直線状を取りたい手を練習し、その後、次のことができます。正しいコードは以下の通りです。

PTAの吸盤コンパイラはC(GCC)である場合には、物事の多くは、それを認識することはできません

書式#include <stdio.hに>

書式#include <string.hの>

書式#include <stdbool.h> // BOOLコンパイラでも認識できません、

#define LISTSIZE 20000     

typedefのCHARデータ型。

typedefは構造体{

    データ型データ[LISTSIZE];配列の//代表長さ

    int型NLENGTH; // NLENGTHは、直線状の長さを示し

} SeqList。

空initList(SeqList *リスト){//初期化関数は、テーブルの長さを作ることである線形である0

    リスト - > NLENGTH = 0; //リストポインタが括弧内に放出された実行

}

 

BOOL listEmpty(SeqList *リスト){//リニアテーブルポインタを決定するには空であるが、より効率的にポインタ使用しなくてもよいです

    戻りリスト - > NLENGTH == 0; //新たに0として定義される線形テーブルの長さを設定します

}

 

ブール挿入(SeqList *リスト、INT I、データ型x)は{

    アレイの場合(リスト - > NLENGTH == LISTSIZE){//もし全長、次いで偽を返します

        falseを返します。

    }

    int型insertPosition =私は; //は、挿入ポイントの私に設けられています。

    IF(I <0)insertPosition = 0;要素の挿入位置がゼロ以上であれば、ヘッダのテーブルの上に置く//

    insertPosition =リスト - > NLENGTH(I>リスト - > NLENGTH-1)場合、iは線形形式の最後の要素のインデックスよりも大きい場合//は、尻尾の上に置く、もちろん、falseに変更することができます

    (int型私=リスト - > NLENGTH-1; i>を= insertPosition; I - )はこちら{//均等の注意

        リスト - >データ[I + 1] =リスト - >データ[I]を、

    }

    リスト - >データ[insertPosition] = X。

    リスト - > NLENGTH ++;

    trueを返します。   

}

 

INTメイン(){

    SeqList L。    

int型のカウント= 0;

int型COU = 0;

int型、A = 0;

    int型の解像度、場所;

    チャーREC [20000]。

    initList(&L); //ビルドテーブル

    scanf関数( "%s" は、&REC); //注scanfのアドレス値を送信することができません

    

一方、(REC [A]!=「\ 0」){//これは、キーボードからの実際の入力文字の数を計算するために

    COU ++;

    ++;

    }

以下のために(INT I 0 =; I <COU; I ++){//テーブルにキーボードデータを取得します

    インサート(&L、I、REC [I])。    

    }    

    (listEmpty(&L)){//注意ここで0を返す場合、

    printf( "NULL");

    0を返します。

     }

    

以下のために(INT I 0 =; I <COU; I ++){

    (l.data [I]> = '0' && l.data [I] <= '9'){//離れ直接比較取得する場合        

      数++; //実際には3段階のロジックと数学の質問

     位置= I + 1カウント; //数値のシーケンスを計算するためのカウンタとしての長さをカウントし、そして文字が一度表示され、カウント値はゼロになります      

     RES =カウント; //このステップは、実際には質問に開いているが、吸盤PTA後

        }

        他のカウント= 0;

}

 

printf( "%D%D"、場所、RES)。               

0を返します。   

      

}

 

リリース5元の記事 ウォンの賞賛0 ビュー30

おすすめ

転載: blog.csdn.net/weixin_44157472/article/details/104781111