入力
印刷可能なASCII文字(32〜126の範囲)で構成される、空ではないエンコード文字列。一部の欠落文字がに置き換えられてい_
ます。
出力
不足している文字を含む、すべての文字が小文字の同じ長さのデコードされた文字列。
どうやって?
編集:コメントで@Deusoviが述べたように、これはベーコンの暗号の変形です。
- 元の文字列のすべての文字を収集し、5でグループ化します。5の完全なグループに収まらない追加の文字は無視されます。
- 各グループをバイナリに変換します:lowercase = 0、uppercase = 1。これは整数のリストにつながります。
- このリストの各値Nを使用
_
して、元の文字列の各値を、出現順にアルファベットのN番目の文字(0インデックス付き)に置き換えます。
例: prOGraMMIng PuZZleS & cOde ____
prOGr --> 00110 --> 6 --> 7th letter = 'g'
aMMIn --> 01110 --> 14 --> 15th letter = 'o'
gPuZZ --> 01011 --> 11 --> 12th letter = 'l'
leScO --> 00101 --> 5 --> 6th letter = 'f'
欠落している文字を置き換え、すべてを小文字に戻すことにより、元の文字列が明らかになります。
programming puzzles & code golf
これは予想される出力です。
明確化と規則
- 欠落している文字は、文字列の最後に表示されることが保証されています。より正式に
_
は、入力文字列の最初の文字の後に文字が存在することはありません。ただし、スペースや句読点などの他の印刷可能なASCII文字が存在する場合があります。 - 入力には、無駄な大文字が含まれないことが保証されています。すべての大文字は、欠落している文字をデコードするために必要な1に設定されたビットです。それ以外はすべて小文字です。
- 入力文字列は有効であることが保証されています。特に:
- アンダースコアをデコードするのに十分な5文字のグループが常に含まれます。
- バイナリエンコードされた整数は、範囲[0-25]であることが保証されています。
_
入力文字列にまったくない場合があります。その場合は、入力を返すだけです。- これはcode-golfなので、バイト単位の最短回答が勝ちです!
テストケース
Input : hello!
Output: hello!
Input : helLO, worl_!
Output: hello, world!
Input : i aM yoUr faTh__.
Output: i am your father.
Input : prOGraMMIng PuZZleS & cOde ____
Output: programming puzzles & code golf
Input : Can YOu gUesS tHE ENd oF This ____?
Output: can you guess the end of this text?
Input : THe qUICk brown FOx JUMps oVEr the la__ ___.
Output: the quick brown fox jumps over the lazy dog.
Input : RoadS? wHERe we're goinG WE doN't need _____.
Output: roads? where we're going we don't need roads.
Input : thE greatESt Trick thE DeVIl EVer PUllEd wAs CONvInciNg tHe WorLD h_ ____'_ _____.
Output: the greatest trick the devil ever pulled was convincing the world he didn't exist.
いくつかの追加のテストケース:
Input : BInar_
Output: binary
Input : 12 MonKey_
Output: 12 monkeys
Input : hyPerbolIZ__
Output: hyperbolized
Input : {[One Last Test ca__]}
Output: {[one last test case]}
_
入力文字列にnoがある場合のルールは特殊なケースです。
The input is guaranteed not to contain any useless capital letter
、アンダースコアがない場合、大文字もありません。
[32-126]
。別のテストケースを追加しました。