Giriş
Dosya adları çılgınca bir basit arasında değişen şeyleri değişen edilebilir blah.txt
için 303549020150514101638190-MSP0.txt
. Birincisi genellikle insan tarafından üretilirken ikincisi genellikle makine tarafından üretilir. Bir dosyanın "insan dostu" kabul edilip edilemeyeceği konusunda eğitimli tahminler yapmak için basit bir işleve sahip olmak hoş olmaz mıydı?
Eduard Florinescu'nun silinen bir yayınından esinlenilmiştir. Fikri iyiydi, ama sadece biraz ete ihtiyacı vardı.
Meydan okuma
Seçtiğiniz dilde bir dize alabileceğiniz bir program veya işlev yazın ve bu sorunla tanımlandığı şekilde "insan dostu" olarak kabul edilip edilmediğini belirleyin.
Bazı detaylar ve kurallar aşağıdaki gibidir:
- Giriş, yazdırılabilir 95 ascii karakterinden oluşan bir dize olacaktır.
- "insan dostu" şu şekilde tanımlanır:
- Uzantıyı dikkate almayın. Bir uzantı, son dönem ve ardından bir dizi alfasayısal karakter (1'den az, 6'ya kadar) olarak tanımlanır.
- Dizenin uzunluğunun yarısından fazlası (uzantı hariç) aşağıdaki tanımlanmış karakter gruplarından (birleştirilmiş) oluşabilir:
- Arka arkaya 8'den uzun ondalık karakterler.
- Arka arkaya en az 16 olan onaltılık karakterler (büyük x veya küçük harf) (harflerden ve rakamlardan oluşmalı ve karakterlerin en az üçte biri sayı olmalıdır).
%+=
Arka arkaya en az 12 karakterlik ( özel karakterler olarak kullanılır) Base64 karakter ( harf ve rakamlardan oluşmalı, büyük / küçük harf karıştırılmalıdır ve karakterlerin en az üçte biri büyük harf olmalıdır).
- Yukarıdaki gruplandırmalardan herhangi biri tanım olarak çakışıyorsa (base64 olarak nitelendirilen, ancak arka arkaya 8 basamaklı bir tane gibi), hariç tutulacak en uzununu seçin.
- Çıktı, ipin "insan dostu" olarak kabul edilip edilmediğine bağlı olarak, doğruluk ya da yanlış bir değer olmalıdır.
- Yalnızca geçerli girdinin kullanılacağını varsayın. Hata işleme konusunda endişelenmeyin.
Kazanan en kısa program / fonksiyon tarafından belirlenecektir. En az 7 gün içinde veya yeterli sayıda başvuru olduğunda / olduğunda seçilecektir. Beraberlik durumunda, daha önce gelen cevap kazanır.
Örnekler
Kodunuzun işleyebilmesi için birkaç giriş ve çıkış örneği:
"results_for__michael_greer.txt.zip" => true
"Georg Feuerstein - Connecting the Dots.pdf" => true
"M People - Search for the Hero-ntuqTuc6HxM.mp4" => true
"index.html?v=QTR4WGVTUzFsV3d8NHxvcmlnaW5hbHx8MTExMTAxBHxodHRwOi8vLCwsLHRyLDcsMA%3D%3D.html" => false
"ol2DCE0SIyQC(173).pdf" => false
"d41d8cd98f00b204e9800998ecf8427e.md5" => false
"12792331_807918856008495_7076645197310150318_o.jpg" => false