問題
森の真ん中にある小屋で立ち往生し、自分を楽しませるために古いスクラブルだけをセットしています。検査すると、スクラブル文字がすり減っており、各文字のポイントだけが見えることがわかります。
それにもかかわらず、あなたはゲームをプレイすることにしました。バッグから7文字を引き出してトレイに置きます。あなたの課題は、それらの文字が何であるかを判断することです。
そのため、一般に、ポイントのリストが与えられると、それを可能な文字列または文字のリストに変換します。
スクラブルタイルと分布
- 2つの空白のタイル(0ポイントのスコア)
- 1点:E×12、A×9、I×9、O×8、N×6、R×6、T×6、L×4、S×4、U×4
- 2点:D×4、G×3
- 3点:B×2、C×2、M×2、P×2
- 4点:F×2、H×2、V×2、W×2、Y×2
- 5ポイント:K×1
- 8点:J×1、X×1
- 10点:Q×1、Z×1
だから、あなたはポイントのリストを持っている場合は[10,10,8,5,1,1,1]
、次に"QZJKEEE"
有効であるだろうが、"QQJKEEE"
(袋にのみ1 Qタイルがあるので)、有効ではありません
問題固有のルール
- すべての入力が有効であり、常に7タイル(つまり、7つの10ポイントタイルのリストではなく、9タイルではない)があると想定できます。
- バッグから以前にタイルが引き出されていないと仮定できます(したがって、分布は上記で定義された英語のタイルの標準分布です)
- 有効な単語を生成する必要はなく、有効な文字列のみを生成します。
- 各タイルに対応する文字がある限り、文字列の順序は関係ありません。
- ポイントは、上記で定義した標準的な英語のスクラブルタイルポイントに基づいています。
- 大文字または小文字で出力できます。空白のタイルでは、スペース文字またはアンダースコア「_」のいずれかを出力できます
- 回答は、リスト、文字列、配列、シーケンスなどのタイルの合理的な表現として出力される場合があります
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - デフォルトのI / Oルールを使用した回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッド、適切なパラメーターおよび戻り値型、完全なプログラムを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンク(TIOなど)を追加してください。
- また、回答の説明を追加することを強くお勧めします。
テストケース
可能な値を出力できるため、厳密なテストケースを定義することは困難です。
有効な戻り値が考えられるいくつかのケース:
[10,0,10,5,8,8,0] -> "Q ZKJX "
[1,1,1,1,1,1,1] -> "EEEEEEE"
[1,2,3,4,5,8,0] -> "NDBHKJ "
[2,2,2,2,2,2,2] -> "DGDGDGD"
無効な戻り値を持ついくつかのケース:
[10,0,10,5,8,8,0] -> "Q QKJX " - Too many Qs
[1,1,1,1,1,1,1] -> "EEEEEE " - Space is 0 points not 1
[1,2,3,4,5,8,0] -> "NDBH" - Too short
[1,2,3,4,5,8,0] -> "NDBHKJ I" - Too long
[1,2,3,4,5,8,0] -> "ÉDBHKJ1" - Contains none scrabble characters
[2,2,2,2,2,2,2] -> "GDGDGDG" - Contains too many Gs (case for invalid cycling)
[2,2,2,2,2,2,2]
からではD
なくaから開始することが重要な唯一のケースG
)