トピックリンク:単語のスペル
質問の意味:あなたは「用語集」(文字列の配列)を与える言葉と「アルファベット」(文字列)文字。
あなたは「単語」「手紙」の文字と(文字列)(文字)で単語を綴ることができるなら、我々はあなたが言葉を習得したと思います。
注:たびスペリングは、各文字は一度だけ使用することができます文字。
あなたは長さの合計をマスターしているすべての単語に語彙を返します。
ソリューション:暴力。同様のハッシュ?その後、統計情報の配列と文字の数、およびこの配列をコピーするには、単語の単語を通過するたびに、同じマークの上には表示されません。あなたは正常にこの単語の長さについての記録に行き来することができます。
コード:
1 クラスソリューション{ 2 公共: 3 INTの MP [ 26 ] = { 0 }。 4 5 int型 countCharacters(ベクトル< ストリング >&単語、文字列文字){ 6 INT LEN = chars.size()。 7 ための(INTは iは= 0 ; I <LEN; I ++ ){ 8 MP [文字[I] - [ A ' ] ++ ; 9 } // 统计 10 11 INTANS = 0 ; 12の INT RES [ 26 ]。 // 复制表 13 のために(INT iが= 0 ; I <words.sizeを(); I ++ ){ 14 列ワード= ワード[i]は、 15 のmemcpy(RES、融点、はsizeof (MP))。 16 のintフラグ= 1 。 17 のために(INT J = 0 ; J <word.size(); J ++ ){ 18 であれば(RES [単語[J] - ' ' ] == 0){ // 何文字が存在しない場合 。19 、フラグ= 0 ; 20である BREAK ; 21である } 22が 他 RES [ワード[J] - [ A ' ] - ; 23である } 24 IF(のフラグ)+ ANS = word.size(); 25 } 26は、 27 の戻りANS; 28 } 29 }。