パングラムは、すべての文字を含む文字列ですa
- z
英語のアルファベット、大文字と小文字を区別しませんの。(パングラムに文字のコピーが複数含まれていたり、文字に加えて文字以外の文字が含まれていても問題ありません。)
入力が文字列のリストであり、次のプロパティを持つ1つ以上の文字列を出力するプログラムまたは関数を記述します。
- 各出力文字列はパングラムでなければなりません。
- 各出力文字列は、スペースで区切られた、入力リストからの1つ以上の文字列を連結して形成する必要があります。
- 各出力文字列は、これらのプロパティを持つすべての文字列の中で、最短であるか、最短で結合されている必要があります。
多くのプログラムは、1つの文字列のみを出力することを選択します。出力を制限するために追加のコードを作成する必要がある場合にのみ、複数の文字列を出力する必要があります。
入力に印刷できない文字やスペースが含まれておらず、その中の単語が(リストの長さの自然対数の26倍)文字を超えていないと想定する場合があります。(ただし、入力に文字のみ、または小文字のみが含まれているとは限りません。句読点と大文字は完全に可能です。)
入力と出力は、適切な形式で指定できます。プログラムのテストには、2つのテストケースを使用することをお勧めします。英語の単語の辞書(ほとんどのコンピューターには1つあります)と、次のケース(完全な(26文字)のパングラムが不可能な場合)を見つける必要があります。重複した文字を含む):
abcdefghi
defghijkl
ijklmnop
lmnopqrs
opqrstuvw
rstuvwxyz
提出物とともに、プログラムの出力のサンプルを含める必要があります。(これは、異なる単語リストを使用した結果、人によって異なる場合があります。)
勝利条件
これは、複雑さ が制限されたコードゴルフの課題です。勝者は、多項式時間で実行される最も短いプログラム(バイト単位)です。(それが何を意味するのかを知らない人のための要約:単語リストのサイズを2倍にすると、プログラムは一定の係数以下で遅くなるはずです。しかし、問題の定数係数はあなたと同じくらい大きくすることができますたとえば、4倍または8倍遅くなることは有効ですが、単語リストの長さの係数だけ小さくなることはありません。遅くなる係数には制限があるはずです。)