Tantangan:
Input:
- String yang berisi ASCII yang dapat dicetak (tidak termasuk spasi, tab, dan baris baru)
- A boolean †
Keluaran:
Bagian-bagian dari String dibagi menjadi empat kelompok:
- Huruf kecil
- Huruf besar
- Digit
- Lain
Berdasarkan boolean, kami dapat menampilkan kemunculan tertinggi satu (atau kelipatan) dari empat kelompok ini, atau yang terendah, menggantikan yang lainnya dengan spasi.
Sebagai contoh:
Input: "Just_A_Test!"
Berisi:
- 3 huruf besar: JAT
- 6 huruf kecil: ustest
- 0 digit
- 3 lainnya:__!
Ini akan menjadi output untuk trueatau false:
true: " ust est "
// digits have the lowest occurrence (none), so everything is replaced with a space
false: " "
(Catatan: Anda diizinkan untuk mengabaikan spasi tambahan, sehingga hasilnya juga bisa " ust est"dan"" masing masing.)
Aturan tantangan:
- Input tidak akan pernah kosong atau berisi spasi, dan hanya akan terdiri dari ASCII dicetak dalam rentang
33-126atau'!'melalui'~'. - Anda diizinkan untuk mengambil input dan / atau output sebagai karakter-array atau daftar jika Anda mau.
- † Dua nilai yang konsisten dan berbeda untuk boolean diizinkan:
true/false;1/0;'H'/'L';"highest"/"lowest"; dll. Perhatikan bahwa nilai-nilai yang berbeda ini harus digunakan (agak) sebagai boolean! Jadi tidak diperbolehkan memasukkan dua program lengkap, satu yang memberikan hasil yang benar untuktruedan yang lainnya untukfalse, dan kemudian hanya memiliki kode Anda yang sebenarnya<run input with parameter>. Celah default baru yang relevan yang telah saya tambahkan, meskipun masih dapat menggunakan banyak finetuning mengenai definisi .. - Jika kemunculan dua atau lebih kelompok adalah sama, kami menampilkan semua kemunculan itu.
- Ruang trailing yang diperlukan adalah opsional, dan satu baris baru trailing juga opsional. Ruang terkemuka yang diperlukan wajib diisi. Dan spasi atau baris baru lainnya tidak diperbolehkan.
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa pun'. - Aturan standar berlaku untuk jawaban Anda, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat, program lengkap. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda.
- Juga, silakan tambahkan penjelasan jika perlu.
Kasus uji:
Inputs: Output:
"Just_A_Test!", true " ust est " (or " ust est")
"Just_A_Test!", false " " (or "")
"Aa1!Bb2@Cc3#Dd4$", either "Aa1!Bb2@Cc3#Dd4$"
"H@$h!n9_!$_fun?", true " @$ ! _!$_ ?"
"H@$h!n9_!$_fun?", false "H 9 " (or "H 9")
"A", true "A"
"A", false " " (or "")
"H.ngm.n", true " ngm n"
"H.ngm.n", false " " (or "")
"H.ngm4n", false "H. 4 " (or "H. 4")
Hdan 9merupakan bagian dari "paling sedikit".
"max"/ "min", yang kemudian digunakan Math[b]untuk merujuk ke Math.maxatau Math.min?
b?"max":"min"jawaban Anda .. Ini adalah garis yang bagus saya kira, mungkin saya harus menggunakan nilai truthy / falsey lain kali ..
"H "dan" 9 "(dengan spasi yang sesuai) dijadikan keluaran alih-alih"H 9"?