シナリオ
最近、お気に入りのテキストエディターで奇妙な動作に気づいています。最初は、ディスクに書き込むときにコード内のランダムな文字を無視しているように見えました。しばらくすると、パターンに気付きました。ASCII値が奇数の文字は無視されていました。さらに詳しく調べてみると、8ビットごとにゼロの場合にのみファイルに適切に書き込むことができることがわかりました。ここで、貴重なファイルがこの奇妙なバグの影響を受けているかどうかを知る必要があります。
タスク
ファイルに奇数バイトが含まれているかどうかを判断する完全なプログラムを作成する必要があります(破損していないことを示します)。ただし、テキストエディタのため、ソースコードに奇数バイトを書き込むことはできません。入力には既存のエンコーディングを想定できますが、文字だけでなく個々のバイトごとにチェックする必要があります。
入力
プログラムは、stdinまたはコマンドラインからファイルの内容またはファイルへのパスを取得します。
出力
プログラムは、指定されたファイルに奇数バイトが含まれている場合は真偽値を、8ビットごとにゼロの場合は偽をstdoutに出力します。
基準
これは、タスクを完了する最短のプログラムであるコードゴルフです。ファイルのソースコードの8ビットごとに有効な送信を行うには、ゼロでなければなりません。提出物にソースコードのバイナリのコピーを含めることをお勧めします。
標準抜け穴適用されます。
テストケース
(ASCIIエンコード)入力:
"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
Output:
falsy
Input:
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
Output:
truthy
Input:
LOREMIPSVMDOLORSITAMETCONSECTETVRADIPISCINGELITSEDDOEIVSMODTEMPORINCIDIDVNTVTLABOREETDOLOREMAGNAALIQVA
VTENIMADMINIMVENIAMQVISNOSTRVDEXERCITATIONVLLAMCOLABORISNISIVTALIQVIPEXEACOMMODOCONSEQVAT
DVISAVTEIRVREDOLORINREPREHENDERITINVOLVPTATEVELITESSECILLVMDOLOREEVFVGIATNVLLAPARIATVR
EXCEPTEVRSINTOCCAECATCVPIDATATNONPROIDENTSVNTINCVLPAQVIOFFICIADESERVNTMOLLITANIMIDESTLABORVM
Output:
truthy
ヒント
言語を賢く選択してください。この課題はすべての言語で可能とは限りません
Unixコマンド
xxd -b <file name>
は、ファイルのバイナリをコンソールに出力します(いくつかの追加のフォーマット設定要素とともに)。UTF-8など、ASCII以外の他のエンコードを使用する場合は、他のすべての規則に従ってください。
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
気にする人のために、禁止されている印刷可能なASCII文字です。許可される印刷可能なASCII文字がある" $&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
[CR]
、奇数ビットがあることに注意してください。ホワイトスペースが安全であることを望んでいましたが、悲しいかな[TAB]
。古い学校に行きたい場合、EBCDICは3つの母音を与えます。