Diberikan daftar N
bilangan bulat non-negatif, hasilkan angka-angka tersebut dengan masing-masing diisi oleh spasi hingga panjang N
. (Atau, kembalikan daftar karakter / string.) Anda dapat mengasumsikan bahwa N
lebih besar atau sama dengan jumlah digit dari jumlah terbesar dalam daftar. Ruang tambahan diizinkan di output.
Anda juga dapat mengambil string yang berisi angka-angka ini, tetapi N
bukan panjang string, melainkan jumlah elemen dalam daftar; juga, Anda dapat mengambil daftar string misalnya ["1", "2", "3"]
.
Ini adalah kode-golf, jadi program terpendek dalam byte menang.
Uji kasus
input => 'output'
0 => '0'
1 => '1'
2 3 => ' 2 3'
2 10 => ' 210'
4 5 6 => ' 4 5 6'
17 19 20 => ' 17 19 20'
7 8 9 10 => ' 7 8 9 10'
100 200 300 0 => ' 100 200 300 0'
1000 400 30 7 => '1000 400 30 7'
1 33 333 7777 => ' 1 33 3337777'
0 0 0 0 0 0 => ' 0 0 0 0 0 0'
Jawaban:
05AB1E , 3 byte
Kode:
Penjelasan:
Cobalah online! atau Verifikasi semua kasus uji .
sumber
Python, 32 byte
Fungsi anonim yang mengambil tuple sebagai input. Baik angka atau string berfungsi.
Contoh:
sumber
JavaScript (ES7), 37 byte
Input: Array string
Output: Array string
Tampilkan cuplikan kode
sumber
PowerShell v2 +, 36 byte
Mengambil input
$a
sebagai array dariint
egers. Loop melalui mereka$a|%{...}
. Setiap iterasi, gunakan-f
operator ormat dengan opsionalAlignment Component
(berdasarkan pada$a.count
) untuk menambahkan jumlah ruang yang sesuai. String yang dihasilkan ditinggalkan di pipa. Pada akhir pelaksanaan program, string yang dihasilkan semuanya ditinggalkan di pipa sebagai array.Contohnya
Output dipisahkan baris-baru pada setiap proses, karena itulah default
Write-Output
pada penyelesaian program untuk sebuah array.sumber
JavaScript, 49 byte
Mengambil argumen sebagai daftar string dan juga mengembalikan daftar string.
Penjelasan:
sumber
.join("")
tidak diperlukan.a=>a.map(n=>(" ".repeat(l=a.length)+n).slice(-l))
memiliki panjang yang sama tetapi bekerja pada bilangan bulat serta string.Perl, 26 byte
-4 byte berkat @Ton Hospel
25 byte kode +
-a
bendera.Jalankan dengan:
(Pada beberapa versi Perl yang lama, Anda mungkin perlu menambahkan
-n
)sumber
-a
opsi ini akan membuat kode Anda lebih pendek ...Bash, 14
Daftar input diberikan pada baris perintah.
Tidak banyak yang bisa dijelaskan di sini. Cukup gunakan fasilitas built-in
printf
untuk melakukan padding yang diperlukan, berdasarkan jumlah arg yang lolos:$#
adalah jumlah argumen yang dilewati%<n>d
adalah specifier format printf yang mencetak integer dengan hingga n spasi terdepan$@
adalah daftar semua arg yang disahkan$@
.Ideone .
sumber
Vim, 19 byte
YPPG!{<C-F>|R%ri<CR>djVGgJ
Mengambil daftar angka satu per baris. Bergantung pada
:set expandtab
, yang populer, tetapi tidak universal.Anda jelas ingin menggunakannya
:right
untuk ini. Pertanyaannya adalah bagaimana cara mendapatkan jumlah baris ke baris perintah. Cara tradisionalnya adalah:%ri<C-R>=line('$')
, tetapi semua teks itu panjang.Pendekatan yang lebih pendek, lebih giat adalah untuk membentuk baris perintah menggunakan
!
perintah mode normal . Ini melibatkan beberapa solusi aneh, memperluas file dengan 2 baris kemudian menghapusnya lagi, tetapi keluar 2 byte lebih pendek. Dan saya agak kaget baris perintah yang saya dapatkan (seperti:%ri+4!
) benar-benar berfungsi, tetapi ternyata berhasil.sumber
expandtab
menambahkan 7 goresan ke solusi ini. Alasan yang menjadi masalah adalah bahwa saya harus memeriksa pendekatan lain untuk menghindari / menghapus tab yang sekarang mungkin menang. Ini banyak waktu, sama sekali tidak menyenangkan, membuat kualitas solusi saya lebih buruk, dan bahkan tidak mempengaruhi salah satu kasus uji yang disediakan (tidak ada yang memiliki 8+ angka). Jika itu aturannya, itu aturannya, tapi saya lebih suka menandai non-bersaing daripada melakukan ini tanpaexpandtab
.Ypp!{
. Memang lebih pendek. Itu juga tidak bekerja. Itu akan selalu membawa nomor 1 ke dalam baris perintah, terlepas dari panjang file.Ruby,
403634 byteDapat dikerjakan lebih banyak.
Sebut sebagai lambda.
Penjelasan:
sumber
Jelly ,
76 byteInput adalah larik string. Cobalah online! atau verifikasi semua kasus uji .
Bagaimana itu bekerja
sumber
Mathematica, 25 byte
Baik input maupun output adalah daftar string.
Penjelasan
Dapatkan panjang input (jumlah elemen).
Pad kiri setiap elemen di input sehingga panjangnya cocok dengan panjang input.
sumber
JavaScript (ES6), 47
Fungsi anonim, input: array string, output: array string
Menggunakan fungsi padding rekursif
Untuk array integer / string sebagai input, 49 byte:
Uji
sumber
PHP, 55 Bytes
Versi sebelumnya 59 Bytes
sumber
foreach($a=$_GET[a]as$i)printf("%".count($a)."s",$i);
J, 4 byte
Cobalah online!
Fungsi unary mengambil daftar angka di sebelah kanan sebagai larik dan mengembalikan string yang diisi.
Ini sedang digunakan di REPL. Perhatikan bahwa jalur input diberi indentasi tiga spasi.
sumber
CJam , 11 byte
Cobalah online! (Sebagai suite uji.)
Penjelasan
sumber
Kotlin, 90 byte
Golf:
Tidak Terkumpul:
sumber
Haskell, 47 byte
Itu adalah fungsi dari daftar string ke daftar string, seperti jawaban JavaScript.
replicate
memungkinkan seseorang untuk mendapatkan daftar (string Haskell adalah daftar karakter) dari ukuran tertentu, jadi saya menggunakannya - dan asumsi tebal dalam masalah - untuk menghasilkan bantalan (panjangnya adalahN
- <panjang elemen>, untuk setiap elemen dari daftar input). Saya lebih suka menggunakanprintf
solusi berbasis daripada yang ini denganreplicate
(itu akan lebih pendek, untuk satu hal) tetapi pernyataan impor membunuh penghematan yang dilakukan pada fungsi itu sendiri.sumber
Jawa,
8382 byteMembangun string format yang dirancang untuk melapisi argumen yang diberikan oleh sejumlah spasi yang sama dengan panjang array. String format digunakan sebagai argumen untuk
String.format
, dan hasilnya kemudian dikembalikan. Antarmuka fungsional dapat menerima salah satuString[]
atau yangInteger[]
serupa.Kelas penuh:
Cobalah di Ideone.
-1 byte terima kasih kepada @KevinCruijssen.
sumber
int ...
dans+=...
di dalamif
seperti ini:for(int i=a.length,j=i;i-->0;s+="%"+j+"s");
Groovy, 36 Bytes
Hanya mengambil array string, menghasilkan array string berlapis.
sumber
MATL, 14 byte
Cobalah MATL Online
Ini menggunakan pembuatan string yang diformat dengan terlebih dahulu membangun string format:
%(NUM)d
dan kemudian menerapkan format string lagi menggunakan string format ini dan input.sumber
JavaScript 33 byte
mirip dengan @Hedi - tetapi padding default adalah '', jadi 4 karakternya kurang
sumber
K (oK) , 11 byte
Larutan:
Cobalah online!
Penjelasan:
Diinterpretasikan dari kanan ke kiri. Konversikan ke string, dan pad kiri dengan daftar panjang, lalu ratakan:
sumber
Pyth - 7 byte
Jawaban langsung menggunakan padding builtin.
Test Suite .
sumber
C #, 39 byte
Mengambil
List<string>
dan mengeluarkan aList<string>
.Penjelasan:
Sudah beberapa byte lebih pendek untuk menggunakan LINQ jika impor tidak dihitung dan kemudian kembali
IEnumerable<string>
bukannya daftar lengkap:C #, 35 + 18 = 53 byte
sumber
R, 47 byte
Membaca input dari stdin dan menggunakan format C-style with
sprintf
. Seharusnya ada beberapa caracat
fungsi tidak diperlukan tetapi tidak bisa menemukan cara untuk menekan tanda kutip pada setiap elemen tanpa itu. Jika kami hanya ingin memulai dan mengakhiri penawaran, kami dapat menggunakan opsi yang sedikit lebih panjang:sumber