pengantar
Nama file bisa bermacam-macam hal, mulai dari yang sederhana blah.txt
hingga 303549020150514101638190-MSP0.txt
. Yang pertama biasanya dihasilkan manusia, sedangkan yang terakhir sering dihasilkan mesin. Bukankah lebih baik memiliki fungsi sederhana untuk membuat tebakan yang berpendidikan tentang apakah suatu file dapat dianggap "ramah manusia" atau tidak?
Terinspirasi oleh pos oleh Eduard Florinescu yang sejak itu dihapus. Idenya bagus, tetapi hanya perlu sedikit menyempurnakan.
Tantangan
Tulis program atau fungsi dalam bahasa pilihan Anda yang dapat mengambil string, dan tentukan apakah itu dianggap "ramah manusia", seperti yang didefinisikan oleh tantangan ini.
Beberapa perincian dan aturan lebih lanjut adalah sebagai berikut:
- Input akan berupa string yang terdiri dari 95 karakter ascii yang dapat dicetak.
- "ramah manusia" harus didefinisikan sebagai berikut:
- Kecualikan ekstensi dalam pertimbangan. Ekstensi didefinisikan sebagai periode akhir diikuti oleh serangkaian karakter alfanumerik (sesedikit 1, sebanyak 6).
- Tidak lebih dari setengah string dengan panjang (tidak termasuk ekstensi) dapat terdiri dari pengelompokan karakter yang didefinisikan berikut (gabungan):
- Karakter desimal yang lebih panjang dari 8 berturut-turut.
- Karakter heksadesimal (huruf besar atau kecil) dari setidaknya 16 berturut-turut (harus terdiri dari huruf dan angka, dan yang setidaknya sepertiga dari karakter adalah angka).
- Base64 karakter (menggunakan
%+=
sebagai karakter khusus) minimal 12 berturut-turut (harus terdiri dari huruf dan angka, huruf besar-kecil, dan yang setidaknya sepertiga dari karakter adalah huruf besar).
- Jika salah satu dari pengelompokan di atas tumpang tindih dalam definisi (seperti yang memenuhi syarat sebagai base64, tetapi memiliki 8 digit berturut-turut), pilih yang terpanjang dari mereka untuk dikecualikan.
- Output harus berupa nilai true atau falsy, tergantung pada apakah string dianggap "ramah manusia" atau tidak.
- Asumsikan bahwa hanya input yang valid yang akan digunakan. Jangan khawatir tentang penanganan kesalahan.
Pemenang akan ditentukan oleh program / fungsi terpendek. Mereka akan dipilih setidaknya dalam 7 hari, atau jika / ketika ada cukup pengiriman. Jika terjadi seri, jawaban yang datang sebelumnya menang.
Contohnya
Berikut adalah beberapa contoh input dan output yang harus dapat ditangani kode Anda:
"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