あなたの仕事は、与えられた文字列が適切な長さであり、スクラブルタイルで表現できるかどうかを判断し、そうであれば、各文字のスコアの合計を出力することです。
Scrabble:のプレイ方法がわからない場合は、A〜Zのさまざまな文字が印刷された100個のタイルと、任意の文字を表す2つのワイルドカードがあります。各文字には一定数のポイントがあり、各タイル(必ずしも単語ではない)は1回しか使用できません。単語が再生されると、使用される各タイルのポイント値が合計され、それがスコアになります。限られた数の文字が利用可能であるため、単語に特定の文字を含めることができるのは、その文字にタイル+未使用のワイルドカードが含まれている場合だけです。スクラブルボードは15×15セルなので、単語は2〜15文字でなければなりません。
英語版での各文字の量とスコアのリストについては、下記を参照してくださいまたはhttp://boardgames.about.com/od/scrabble/a/tile_distribute.htm(アーカイブ)。
手紙の数量ポイント手紙の数量ポイント ------------------- ------------------- A 9 1 O 8 1 B 2 3 P 2 3 C 2 3 Q 1 10 D 4 2 R 6 1 E 12 1 S 4 1 F 2 4 T 6 1 G 3 2 U 4 1 H 2 4 V 2 4 I 9 1 W 2 4 J 1 8 X 1 8 K 1 5 Y 2 4 L 4 1 Z 1 10 M 2 3 [ワイルド] 2 0 N 6 1
さらなるルール
- プログラムは、STDINなどから単一の入力文字列を取得します。
- 入力には常に大文字のみが含まれます。
- 文字列にその文字の未使用のワイルドカードまたはタイルよりも多くの文字のコピーが含まれている場合、または文字列の長さが2〜15の範囲にない場合、プログラムはを出力します
Invalid
。 - それ以外の場合は、上記のチャートのデータを使用してスコアを加算し、出力する必要があります。
- 必要でない限り、ワイルドカードを使用しないでください。
- ダブルワードスコアなどのボーナスや、文字列が実際の単語であるかどうかは心配しないでください。
- プログラムは、STDOUTなどを介して結果を出力します。
- デフォルトで禁止されている抜け穴は許可されていません。
- Webサイトなどの外部ソース、およびスクラブルスコアまたは適切な数量を計算するライブラリ、API、関数などを使用することは許可されません。
- これはcode-golfなので、バイト数が最も少なくなります。
ウォークスルー
Input: CODEGOLF
C -> 3, O -> 1, D -> 2, E -> 1, G -> 2, O -> 1, L -> 1, F -> 4
3 + 1 + 2 + 1 + 2 + 1 + 1 + 4 = 15
Output: 15
テストケース
入出力 ------------------------ スクラブル14 ジャズ19 スタックエクスチェンジ32 XYWFHQYVZVJKHFW 81 PIZZAZZが無効です KIXOKEJAJAX無効 誤解無効
-1
?
Invalid
。