Tugas Anda adalah untuk menulis sebuah program yang diberi array dan angka, Anda perlu membagi array menjadi potongan-potongan dengan ukuran angka.
Aturan
Program Anda akan menerima array A
, serta bilangan bulat positif n
. Array kemudian harus dibagi menjadi potongan-potongan panjang n
, jika panjang string tidak habis dibagi oleh n
sisa di akhir harus dianggap potongannya sendiri.
Jika
n
lebih besar dari panjang arrayA
, Anda harus mengembalikan arrayA
, misalnya: jikan = 4
danarray A = [1,2,3]
, Anda harus kembali[1,2,3]
Array dapat berisi jenis apa saja dan bukan angka.
Anda tidak boleh mengubah urutan (atau arah) item apa pun dari kiri ke kanan. Sebagai contoh
if n = 2
danA= [1,2,3]
. Hasil apa pun bukannya[[1,2],[3]]
tidak valid.
Uji Kasus
n A Output
2 [1,2,3,4,5,6] [[1,2],[3,4],[5,6]]
3 [1,2,3,4,5,6] [[1,2,3],[4,5,6]]
4 [1,2,3,4,5,6] [[1,2,3,4],[5,6]]
Ini adalah kode-golf , sehingga Anda byte terpendek dari setiap bahasa akan menjadi pemenangnya.
sumber
n
lebih besar dari panjangA
kami harusA
kembali‽ Apakah Anda yakin tidak bermaksud demikian[A]
?n
harus kembali[A]
, misalnya[[1,2,3]]
. Bagaimana jikan
panjangnya persisA
?A
daripada[A]
, yang akan mengecualikan banyak bahasa.Jawaban:
05AB1E , 1 byte
Cobalah secara online atau verifikasi semua kasus uji .
Dibangun ftw. :)
sumber
JavaScript (ES6), 36 byte
Mengambil input sebagai
(n)(array)
.Cobalah online!
Berkomentar
sumber
APL (Dyalog Unicode) , 12 byte SBCS
Terima kasih banyak kepada Adám karena pada dasarnya melakukan semua golf (dan pada dasarnya semua pengetahuan APL yang saya miliki saat ini> _>).
Penjelasan
Eksekusi
Argumen
2
,1 2 3 4 5 6 7
. Perhatikan bahwa array APL adalah formulira b c
, dengan tanda kurung opsional di sekitarnya.Cobalah online!
sumber
Python 3 , 61 byte
Cobalah online!
Memodifikasi solusi Python 3 Henry T yang ada untuk menghasilkan output yang valid untuk n> = len (A).
Posting sebagai jawaban sendiri karena kurangnya hak komentar.
sumber
Prolog (SWI) ,
908461 byteKode:
Format input mungkin agak aneh, tetapi:
Misalnya, untuk input:
Anda harus menggunakan
[1, 2, 3, 4, 5, 6] * 2 * Result.
.Cobalah online!
Versi tidak disatukan:
Cobalah online! .
sumber
PHP, 15 byte
membutuhkan PHP 7. Hubungi dengan
$f(ARRAY, N)
.sumber
Perl 6 , 13 byte
Cobalah online!
Fungsi kari membungkus
batch
built-in.sumber
;
setelah kode Apapun?;
ketika menyampaikan argumen dengan$^a
atau@_
.Bersih , 54 byte
Cobalah online!
sumber
Python 2 , 39 byte
Cobalah online!
Menganggap bahwa 1 chunk per line adalah output yang dapat diterima.
sumber
Brainfuck, 71 byte
Entah apakah ini diperhitungkan atau tidak ... format input:
Mengambil input dan menempatkan spasi setiap kali
n
karakter lewatPenjelasan (tidak ada koma karena itu akan merusak program):
sumber
,
lebih banyak) digunakan lebih banyak, itu bisa menempatkan sel yang lebih mudah diakses daripada jika ditempatkan di sel lain) atau gunakan bruteforcer. Saya tidak terampil bermain golf di BF sehingga saran ini mungkin tidak membantu.n n n A space
pengaturan sel saya, jika Anda bisa memikirkan cara yang lebih baik ...A space n n n ...
bekerja (atauspace A n n n...
)?Python 3, 46 karakter
-1 terima kasih kepada @Collin Phillips.
Cobalah online!
sumber
CJam , 3 byte
Ini adalah blok anonim yang mengambil larik angka dan angka dari tumpukan, dan menggantinya dengan larik array.
Cobalah online!
sumber
Brachylog , 2 byte
Cobalah online!
sumber
Elixir , 16 byte
Cobalah online!
sumber
Arang , 1 byte
Cobalah online! I / O bawaan Charcoal membuatnya sulit untuk didemonstrasikan menggunakan apa pun kecuali string. Jika Anda menginginkan program lengkap yang mengambil daftar angka dan mengeluarkan daftar yang diformat maka ini dapat dilakukan sebagai berikut:
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
sumber
C # (Visual C # Interactive Compiler) ,
787743 byteCobalah online!
Saya pikir kita harus bisa menulis
int i;
karena 0 adalah default dari int. Saya biarkan untuk menghindari kesalahan:error CS0165: Use of unassigned local variable 'i'
.sumber
F # (.NET Core) , 15 byte
Cobalah online!
Nah F # memiliki builtin ...
sumber
J , 4 byte
Cobalah online!
Mengambil array sebagai arg kiri dan ukuran chunk sebagai arg kanan.
Menggunakan hook diad dan kata keterangan infix dengan argumen negatif, yang melakukan apa yang kita inginkan dengan definisi.
Catatan: Jenis pengembalian harus kotak karena J hanya memungkinkan tabel dengan item berukuran sama.
sumber
Japt , 2 byte
Cobalah online!
sumber
PHP , 45 byte
Cobalah online!
sumber
array_chunk
jawaban yang valid?Java 10,
10680 byteMencetak potongan tanpa pembatas.
Cobalah online.
106 byte:
Sebenarnya mengembalikan daftar daftar.
Cobalah online.
Penjelasan:
sumber
K (oK) , 10 byte
Cobalah online!
sumber
Ruby , 25 byte
Cobalah online!
Jika kita dapat mengembalikan enumerator alih-alih array, maka itu menjadi:
Ruby , 21 byte
Cobalah online!
sumber
PicoLisp ,
7574 byteCobalah online!
sumber
Kelapa , 8 byte
Cobalah online!
sumber
V , 6 byte
Cobalah online!
Hexdump:
Penjelasan:
sumber
Clojure, 14 byte
builtin kurasa
sumber
Haskell , 26 byte
Berikut ini versi yang lebih menarik, dengan hanya beberapa byte lagi (terima kasih kepada nimi selama lima byte di setiap solusi):
Haskell , 31 byte
Cobalah online!
sumber
n!x=take n x:n!drop n x
.Data.Lists
menyediakan jugachunksOf
.PowerShell ,
6765 byte-2 byte terima kasih AdmBorkBork
Cobalah online!
sumber
rv b
(alias untukRemove-Variable
) alih-alih$b=@()
menyimpan dua byte.Jelly , 1 byte
Cobalah online!
Sementara printer membuatnya tampak seperti elemen tunggal tidak dibagi menjadi daftar, mereka sebenarnya.
sumber