この課題は2つの部分で構成されています。勝者は、総バイト数が最も少ないソリューションになります。両方の課題に同じ言語を使用する必要があります。
パート1:
入力として有効な単語のみを含む文を受け取り、使用する文字のリスト、各文字の使用回数、元の文の各単語の文字数を出力する関数またはプログラムを作成します。このプログラムからの出力は、次のプログラムへの有効な入力でなければなりません(出力されたとおり)
例と詳細なルールをさらに下に追加します。
パート2:
最初のプログラムからの出力を入力として使用し、この英単語のリストを使用して、出力からの情報を使用して文を再作成する関数またはプログラムを作成します。文は元の文と同じである必要はありません。
詳しくは。ルールと制限:
パート1:
- 最初の入力は、引用符の有無にかかわらず、関数の引数として、または角括弧の有無にかかわらず、STDINからの任意の適切な形式にすることができます。
- 入力文には、最後のピリオド/ドットを除き、句読点や特殊文字は含まれません。ピリオド記号を除き、入力に含まれるすべての文字は単語リストに含まれます。
- 文の最初の文字は大文字になり、残りは小文字になります。
- パート2の出力は、元の文と同じ大文字で開始する必要があります(したがって、入力を小文字に変換することはお勧めしません(ただし、OK)。
- 出力は任意の適切な形式にすることができます。
- 出力を次のプログラム/機能に直接コピーアンドペーストできる必要があります
- コピーアンドペーストの際に変更を加えることはできません。出力全体を部分的にではなく、全体としてコピーして貼り付ける必要があります。
- たとえば、アルファベットのすべての文字、または使用されているもののみのヒストグラムを出力できます(一般的に、パート2を完了するために必要なものは何でも)
- 複数のオカレンスが繰り返される文字のリストを出力することはできません。例えば、
The queue
出力が得られないことができますTeeehquu (3,5)
、それは次のようになりますTehqu, (1 3 1 1 2),(3 5)
。
パート2:
- プログラム/関数は、パート1からの入力をそのまま受け入れる必要があります(1つの例外、入力としてファイル名を使用することに関する以下のコメントを参照してください)。
- 入力を解析するために括弧、引用符などが必要な場合、これらはパート1の出力の一部である必要があります。
- 単語リストはここにあります。
- 単語リストは、ローカルに保存するか
w.txt
、URLから取得できます。urlは5バイトとしてカウントされるため、url-shortenerは必要ありません。 - プログラムはSTDIN(私はこれが信じているから、入力として名を読まずに、ファイルを開くことができない場合
である少なくともPythのためのケースだった)、その後、ファイル名は別々の入力引数として撮影することができます。
- 単語リストは、ローカルに保存するか
- 出力は、ピリオドとオプションの改行で終わる文(有効な単語のリスト)のみである必要があります。
- 出力には、パート1の元の文と同じ文字数の単語が含まれている必要があります(正しい順序で)
- 元の文で使用されたすべての文字は、新しい出力で使用する必要があります。
- 文は、元の入力文と同じ大文字で始まり、ピリオドで終わる必要があります。
両方の部分:
- どちらの部分も実行に2分以上かかることはありません(ソリューションに到達するまでランダムに単語を選択することは受け入れられません)。
上記の規則を使用すると、まったく同じ文が再現される可能性がかなり高くなりますが、これは必須ではありません。
例:
以下の例では、いくつかの異なる入力および出力形式が示されています。さらに多くが受け入れられます。
パート1:
入力:
Zulus win.
出力タイプ1:
Z i l n s u w
1 1 1 1 1 2 1
5 3
出力タイプ2:
(('Z',1),('i',1),('l',1),('n',1),('s',1),('u',2),('w',1)), (5,2)
出力タイプ3:
'Zilnsuuw',[1,1,1,1,1,2,1],[5,2]
パート2:
入力:パート1からの出力の正確なコピー。出力:
Zulus win.
他の単語の組み合わせは、a Z
で始まり、最初の単語が5文字で、2番目の単語が3文字である限り受け入れられます。
バイト単位の最短コードが勝ちです。
f1
れているf2
必要があります。からの出力に追加データを含めることはできませんf1
。f1
から呼び出すときに情報を利用可能にする際に、データを「保存」することはできませんf2
。f1
呼び出しごとに1つの文字列のみを入力として使用できます。