Tugasnya adalah untuk menghasilkan semua string dari 'a' ke '999' termasuk karakter huruf besar seperti:
'a', 'b', 'c' ... 'y', 'z', 'A', 'B', 'C' ... 'Y', 'Z', '0', '1', 2' ...
'8', '9', 'aa', 'ab', 'ac' ... 'az', 'aA', 'aB' ... 'aZ', 'a0' ... 'a9', 'ba'
dan seterusnya (mengisi celah), secara opsional dimulai dengan string kosong.
Memasukkan:
- Jumlah karakter berurutan yang harus dicetak oleh program.
Keluaran:
- Array yang berisi setiap string ATAU satu string per baris
Klarifikasi:
Urutan tidak penting, Anda dapat mencetak huruf besar atau kecil terlebih dahulu jika Anda mau.
Output dapat mengembalikan semua jenis enumerable, tidak harus berupa array khusus, meskipun saya ragu mencetak semua kombinasi tidak akan menjadi cara termudah untuk pergi.
Input
3
akan mencetak semua string dari'a'
(atau''
) ke'999'
‚input5
hingga'99999'
dan seterusnya.
code-golf
string
number
array-manipulation
Simon Landry
sumber
sumber
a = (function return)
.a
ke9999
, untuk 5a
ke99999
, dan seterusnya.Jawaban:
Jelly , 7 byte
Ini adalah tautan monadik yang menerima integer sebagai input dan mengembalikan array string.
Cobalah online!
Bagaimana itu bekerja
sumber
Haskell, 65 byte
Contoh penggunaan:
k 3
->["a","b","c",....,"997","998","999"]
.Bagaimana itu bekerja
sumber
Python, 86 byte
Menghasilkan daftar string yang tidak kosong. Secara rekursif mengubah setiap karakter alfanumerik ke setiap output untuk
n-1
dan string kosong.sumber
JavaScript (Firefox 30-57), 108 byte
Disimpan 3 byte dengan menggunakan toUpperCase. Menghitung 62 karakter membutuhkan tambahan 10 byte.
sumber
f=
di awal. (Saya selalu lupa melakukan itu untuk jawaban berulang.)f=
, masalah lebih lanjut adalah karena cara Anda mencoba menyebutnya.Cinnamon Gum, 15 byte
Tidak cukup singkat, meskipun ini adalah jenis tantangan yang tepat, Cinnamon Gum dibuat untuk :(
Dikompresi dengan mengonversi dari bijective base 96 ke base 256. Cobalah secara online. Input lebih besar dari 2 akan menyebabkan masalah pada TIO.
Penjelasan
Ini didekompresi ke regex
[a-zA-Z0-9]{1,%s}
. Theh
modus kemudian mengganti input ke%s
dan output semua string yang cocok regex.sumber
Ruby, 82 byte
Bangun produk kartesius dari karakter yang diatur hingga panjang yang diberikan. Set karakter dihasilkan dengan mengambil semua karakter di antara
0
danz
dan menyaring karakter non-kata dan juga_
.sumber
05AB1E ,
98 byteKode:
Penjelasan:
Menggunakan pengodean CP-1252 . Cobalah online! .
sumber
Python 2.7,
136134 byteTerima kasih kepada Maltysen dan NonlinearFruit karena telah menghemat 2 byte
Mengambil
ascii_letters
dandigits
dari modul string dan menggunakan Produk Cartesian sebagaiproduct
dari itertools untuk menghitung semua kombinasi.Keluaran
sumber
i in range(n)
denganrepeat=i+1
range
fungsi?Pyth -
1312 byte1 byte disimpan berkat @Jakube.
Cobalah online di sini .
sumber
rBG1
simpan satu byte lebih+GrG1
B
ifurcate berfungsi dengan argumen? Terima kasih.Python 2,
10697 byteCobalah di Ideone .
sumber
MATL , 12 byte
Ini mengambil angka sebagai input.
Cobalah online!
Penjelasan
sumber
𝔼𝕊𝕄𝕚𝕟 , 21 karakter / 27 byte
Try it here (Firefox only).
Nggak. Nggak. Nggak.
Penjelasan
sumber
Perl, 113 byte + spasi putih
Gunakan "perl -E" di atas, dengan argumen yang merupakan angka. Saya mungkin bisa dengan sopan belum menghitung "peta katakan" terakhir dalam hitungan karakter.
sumber
J, 50 byte
Setengah dari byte, tepatnya 25, dihabiskan untuk menghasilkan huruf dan angka yang dibutuhkan.
sumber
APL,
3837 bytesumber
(⎕ucs 96+⍳26),⎕d
=>⎕d,⍨⎕ucs 96+⍳26
Utilitas Bash + GNU, 90
Input sebagai parameter baris perintah. Output adalah daftar yang dipisahkan oleh spasi.
Bekerja untuk input upt dan termasuk 3. Kehabisan memori dengan 4 -
eval printf
mengambil seluruh rangkaian elemen 63 n dari ekspansi bash.sumber
Utilitas Bash + GNU, 66
Pendekatan berbeda (dan saya pikir sedikit baru) untuk jawaban saya yang lain :
dc
menghitung mundur dari 2 48 -1 hingga 2 48 -64 n danP
memotong setiap angka yang dihasilkan sebagai bytestream (yaitu basis 256). Jika input antara 1 dan 4 inklusif, ini dijamin tepat 6 byte per angka.base64
mengubahnya menjadi output base64 dan dengan demikian 8 byte per base64 digit, satu byte per baris.sed
strips off memimpin/
(base64 digit 63), dan kemudian menghapus garis yang mengandung+
atau/
(base64 digit 62 dan 63). Ini meninggalkan urutan yang diperlukan.sumber
R , 73 byte
y
dimulai sebagai string kosong,x
sebagai alas'a','b','c',...,'8','9'
.outer
mengambil setiap argumen inputnya, dan menerapkan fungsi tersebutpaste0
untuk setiap kombinasi elemen diy
danx
yang menggabungkan string.y
menyimpan hasilnya,cat
mencetaknya, dan iterates melalui STDIN beberapa kali melakukan ini.Cobalah online!
sumber
Jq 1.5 , 97 byte
Diperluas
Cobalah online!
sumber