タイトル説明
別の文字列の接頭辞であるリクエスト文字列がある場合には、いくつかの文字列を与えます。
考え
そして、電話番号リストと全く同じ、辞書ツリーのテンプレートのタイトルが、異なる出力、あなたが注目を初期化することができ、それは詳細には触れません。
コード
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 INT CH [ 5000 ] [ 3 ]、TOT。 ブール編[ 5000 ]; 無効クリア() { memsetの(CH、0、はsizeof (CH))。 memset(編、0、はsizeof (ED))。 TOT = 1 。 } BOOL(挿入のchar *のS) { int型、U = 1 。 INT LEN = STRLEN(S)。 ブール F = 0; 以下のために(int型 i = 0 ; iがLEN <; iは++ ) { int型 NUM = S [I] - ' 0 ' 。 もし(!をch [U] [NUM])CH [U] [NUM] = ++ TOT; それ以外の 場合(I == len- 1)は、f = 1 ; U = CH [U] [NUM]。 もし(ED [U])F = 1 。 } ED [U] = 1 。 リターンF; } int型のmain() { int型 CAS = 0 。 CHARS [ 20 ]。 一方、(〜のscanf(" %sの" 、S)) { BOOLの F = 0 。 クリア(); もし(インサート(S))は、f = 1 。 一方、(scanf関数(" %S " 、S)) { 場合(STRLEN(S)== 1つの && S [ 0 ] == ' 9 ')ブレーク。 もし(インサート(S))は、f = 1 。 } 場合(のprintf(F!)」を設定%dはすぐに復号可能なの\ nは"++ CAS)が、 それ以外(のprintf " を設定%dはすぐにデコード可能な\ nのではない"、++ ; CAS) } の戻り 0 ; }