Mengingat nama situs Stack Exchange yang belum memiliki desain sendiri, tentukan berapa banyak karakter ASCII (yang bukan ASCII dihitung secara terpisah) yang ada di ikon mereka. Kode Anda harus membedakan 4 kasus ini:
1 karakter:
Astronomy
Beer
Freelancing
Health
History
Law
Music: Practice & Theory
Parenting
The Great Outdoors
Writers
2 karakter:
3D Printing
Amateur Radio
Biblical Hermeneutics
Bitcoin
Board & Card Games
Buddhism
Chinese Language
Coffee
Community Building
Computational Science
Computer Graphics
Data Science
Earth Science
Ebooks
Economics
Emacs
Engineering
Expatriates
French Language
Gardening & Landscaping
Genealogy & Family History
German Language
Hardware Recommendations
Hinduism
Homebrewing
Islam
Italian Language
Japanese Language
Joomla
Lifehacks
Martial Arts
Mathematics Educators
Motor Vehicle Maintenance & Repair
Music Fans
Mythology
Open Data
Personal Productivity
Pets
Philosophy
Physical Fitness
Politics
Portuguese Language
Project Management
Puzzling
Quantitative Finance
Reverse Engineering
Robotics
Russian Language
Software Quality Assurance & Testing
Software Recommendations
Sound Design
Space Exploration
Spanish Language
Sports
Startups
Sustainable Living
Tridion
Vi and Vim
Video Production
Windows Phone
Woodworking
Worldbuilding
3 karakter:
Cognitive Sciences
elementary OS
Ethereum
History of Science and Mathematics
Linguistics
Open Source
Programming Puzzles & Code Golf
Signal Processing
Tor
Non-ASCII:
Anime & Manga
Arduino
Aviation
Chess
CiviCRM
Poker
Dikecualikan dalam tantangan ini karena memiliki karakter non-ASCII dalam namanya:
LEGO® Answers
Русский язык
Kode Anda harus menampilkan nilai berbeda yang konsisten untuk masing-masing 4 set. Setiap output (atau representasi string-nya untuk nilai-nilai non-string yang dikembalikan dari suatu fungsi) harus tidak lebih dari 10 byte, tidak termasuk baris tambahan opsional.
Anda dapat membuat beberapa bagian kode dalam bahasa yang sama. Output dari kiriman Anda dianggap sebagai output dari setiap bagian kode yang disatukan dalam urutan yang tetap (sehingga Anda dapat menggunakan Regex).
Kode terpendek menang.
sumber
画
. Tetapi tidak mudah untuk berdebat apakah yang ada di Aviation adalah a✈
. Jadi saya memutuskan untuk mengikuti cara termudah.Jawaban:
CJam,
504845 byteAda karakter yang tidak patut dicetak dalam string di atas, yang dapat diperoleh oleh snippet
Ini juga menunjukkan bahwa poin kode semuanya di bawah 256. Output adalah
0
untuk 1 huruf,1
untuk 2 huruf,2
untuk 3 huruf dan3
untuk non-ASCII.Program hanya mengkonversi string input ke nomor basis 22, melakukan serangkaian modulos untuk mengurangi nomor turun, sebelum melakukan pencarian dari tabel basis-4 yang dikodekan.
Cobalah online | Suite uji
sumber
0123
Outputnya tidak sesuai dengan jumlah huruf masing-masing. Dengan "masing-masing" saya merujuk pada urutan yang tercantum dalam OP, jadi0
1 huruf,1
2 huruf,2
3 huruf dan3
bukan ASCII. Membingungkan, ya, tapi itu adalah pilihan output yang paling golf.Retina,
146136134130124107102 byteTerima kasih @ Sp3000 untuk bermain golf 4 byte!
Terima kasih @ Mwr247 untuk bermain golf 17 byte dengan membiarkan saya menggunakan regex dari jawabannya !
Terima kasih @ jimmy23013 untuk bermain golf 5 byte dengan mengingatkan saya bahwa saya dapat mengubah nilai output!
Outputnya adalah 1, 3, 2, dan 4 masing-masing untuk 1-char, 2-char, 3-char, dan non-ASCII.
Versi dengan semua testcases telah diedit di beberapa tempat untuk membuatnya berfungsi dengan banyak baris.
Cobalah online!
Cobalah online dengan semua testcases!
sumber
i?(ni|vi) -> [nv]?i
sekarang.(?!D)
.Javscript ES6,
342339330327 byteMengembalikan string panjang yang dimulai dengan
9
untuk satu karakter, string panjang yang berbeda dimulai denganb
untuk dua, string ketiga dimulai dengani
untuk tiga, dan hanyaundefined
untuk non-ascii.sumber
PowerShell,
212181 byteSaya menemukan bahwa jika Anda mengambil karakter pertama, ketiga, dan terakhir dari setiap entri yang mungkin (
[0,2,-1]
ketika diindeks nol), kami memperoleh string tiga huruf unik untuk setiap entri. Kami kemudian hanya menggunakan pencarian berbasis string untuk menentukan yang mana yang kami miliki.Mengambil input
$args[0]
, dan menerapkan fungsi keunikan di atas, menyimpan sebagai$a
.Ini kemudian dikirim melalui daftar pencarian kami melalui
.IndexOf($a)
dan hasilnya disimpan di$b
. Kemudian, kita pergi melalui pseudo-ternary yang diindeks berdasarkan nilai$b
untuk menghasilkan nilai yang sesuai.Output
1
,2
,3
, dan4
untuk satu karakter, dua karakter, tiga karakter, non-ASCII, masing-masing.Edit - ditemukan yang
[0,2,-1]
membuat string tiga karakter unik untuk setiap entri, menghemat 31 bytesumber
JavaScript (ES6), 108 byte
Membuat array yang terdiri dari pencocokan regex yang unik untuk masing-masing dari tiga grup terkecil (1 karakter, 3 karakter, dan non-ascii), lalu memetakan tes pada data untuk setiap array. Ketika output dirangkai, ia mengevaluasi
1,0,0
untuk non-ascii,0,1,0
untuk 3 karakter,0,0,1
untuk 1 karakter, dan0,0,0
untuk 2 karakter.sumber