Senaryo
Son zamanlarda en sevdiğiniz metin editörüyle ilgili garip davranışlar fark ettiniz. İlk başta, diske yazarken kodunuzdaki rasgele karakterleri görmezden geliyor gibiydi. Bir süre sonra bir kalıp farkettiniz; garip ASCII değerleri olan karakterler göz ardı edildi. Daha fazla inceleme yaptığınızda, yalnızca her sekizinci bit sıfırsa dosyalara doğru şekilde yazabileceğinizi keşfettiniz. Şimdi değerli dosyalarınızın bu garip hatadan etkilenip etkilenmediğini bilmeniz gerekiyor.
Görev
Bir dosyanın tek bir bayt içerip içermediğini belirleyen tam bir program yazmalısınız (bozuk olduğunu gösteren). Ancak, metin düzenleyiciniz nedeniyle kaynak kodunuzda hiçbir tuhaf bayt yazamazsınız. Girdi için önceden var olan herhangi bir kodlamayı varsayabilirsin, ancak yine de sadece karakterleri değil her bir baytı kontrol etmelisin.
Giriş
Programınız içeriğini veya bir dosyanın yolunu stdin veya komut satırından alır.
Çıktı
Verilen dosya tek bir bayt içeriyorsa programınız stdout değerine ya da her sekizinci bit sıfırsa bir yanlışlık çıkarır.
Kriterler
Bu kod golf, görevi tamamlayan en kısa program. Geçerli bir başvuru olması için, dosya kaynak kodundaki her sekizinci bit bir sıfır olmalıdır. Kaynak kodunuzun ikili dosyalarının bir kopyasını gönderiminize eklemenizi öneririm.
Standart boşluklar uygulanır.
Test Kılıfları
(ASCII kodlamasında) Giriş:
"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
Output:
falsy
Input:
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
Output:
truthy
Input:
LOREMIPSVMDOLORSITAMETCONSECTETVRADIPISCINGELITSEDDOEIVSMODTEMPORINCIDIDVNTVTLABOREETDOLOREMAGNAALIQVA
VTENIMADMINIMVENIAMQVISNOSTRVDEXERCITATIONVLLAMCOLABORISNISIVTALIQVIPEXEACOMMODOCONSEQVAT
DVISAVTEIRVREDOLORINREPREHENDERITINVOLVPTATEVELITESSECILLVMDOLOREEVFVGIATNVLLAPARIATVR
EXCEPTEVRSINTOCCAECATCVPIDATATNONPROIDENTSVNTINCVLPAQVIOFFICIADESERVNTMOLLITANIMIDESTLABORVM
Output:
truthy
İpuçları
Akıllıca dil seçin Bu meydan okuma her dilde mümkün olmayabilir
Unix komutu
xxd -b <file name>
, bir dosyanın ikili dosyalarını konsola yazdıracak (bazı ekstra biçimlendirme öğeleriyle birlikte)Tüm diğer kurallara uyulduğu sürece, UTF-8 gibi ASCII dışındaki diğer kodlamaları kullanabilirsiniz.
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}
umurunda olan herkes için yasak yazdırılabilir ASCII karakterleridir. İzin verilen yazdırılabilir ASCII karakterleri" $&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
[CR]
varsa, tek biti bulunduğunu unutmayın. WhiteSpace'in güvende olduğunu umuyordum, ama ne yazık ki [TAB]
. Eski okula gitmek istiyorsanız, EBCDIC size üç sesli harf verir.