Definisi
- Sebuah urutan mungkin tidak bersebelahan, misalnya
[1, 1, 1]
adalah urutan dari[1, 2, 1, 2, 1]
. - Sebuah urutan sama adalah urutan di mana setiap elemen adalah sama.
- Urutan sama panjang terpanjang mungkin tidak unik, misalnya
[1, 1]
dan[2, 2]
keduanya sama panjang terpanjang dari[2, 1, 1, 2]
.
Memasukkan
Daftar bilangan bulat positif yang tidak kosong dalam salah satu format di bawah ini:
- sebagai implementasi asli dari array bilangan bulat positif dalam bahasa Anda
- sebagai string integer yang dipisahkan baris baru dalam desimal
- sebagai string integer yang dipisahkan baris baru di unary
- format wajar lainnya
Keluaran
Semua urutan yang paling panjang sama dalam urutan apa pun dalam salah satu format di bawah ini:
- sebagai array bersarang 2D dalam bahasa Anda (jika inputnya adalah array)
- sebagai array rata dengan elemen yang sama berdekatan
- format wajar lainnya
Mencetak gol
Meskipun kami mencari sesuatu yang panjang, kode yang digunakan harus sesingkat mungkin dalam hal jumlah byte, karena ini adalah kode-golf
Testcases
Input:
[1, 2, 3]
[1, 2, 2, 1]
[1, 2, 3, 2, 1]
[1, 2, 1, 2, 3, 4, 1]
Output:
[[1], [2], [3]]
[[1, 1], [2, 2]]
[[1, 1], [2, 2]]
[[1, 1, 1]]
Perhatikan bahwa untuk output di atas, pesanan apa pun valid.
Array yang diratakan juga valid, selama elemen yang sama bersebelahan.
code-golf
array-manipulation
Biarawati Bocor
sumber
sumber
1 2 3
,1 1 2 2
,1 1 2 2
,1 1 1
?Jawaban:
Jelly , 5 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Brachylog , 7 byte
Cobalah online!
Penjelasan
⊇
Tatanan alami menghasilkan urutan terpanjang pertama, sehingga mereka adalah yang berakhir di kelompok pertama.sumber
Pyth, 5 byte
Suite uji
Penjelasan:
Ini secara implisit
S.M/QZQ
..M
adalah fungsi maksimal, jadi.M/QZQ
pilih semua elemen di mana nilai/QZ
, hitung jumlah kemunculan elemen dalam input, maksimal.S
kemudian mengurutkan daftar sehingga elemen identik berdekatan.sumber
bash, 66 byte
Sepertinya ini seharusnya lebih pendek, tapi aku tidak tahu caranya.
Cobalah online!
Terima kasih kepada Leaky Nun selama 3 byte!
sumber
Python 2 ,
6863 byteCobalah online!
sumber
print
denganreturn
.map
.Mathematica,
423125 byteTerima kasih @GregMartin untuk 5 byte dan @MartinEnder untuk byte lain!
Penjelasan
sumber
Gather@#~MaximalBy~Length&
.MaximalBy[Length]@*Gather
.Ditumpuk ,
555243 byteCobalah online!
Bekerja dengan run-length encoding input, mengurutkan berdasarkan kejadian, menjaga kejadian yang jumlah kejadiannya maksimal, dan menjalankan decoding panjang. Keluaran melalui daftar datar, seperti yang dapat diterima oleh tantangan.
sumber
Sebenarnya , 23 byte
Cobalah online , atau jalankan semua test case !
Terima kasih kepada Leaky Nun karena menunjukkan peningkatan satu byte yang benar-benar sudah jelas bagi saya
-3 byte dari format output yang santai
Penjelasan:
sumber
Python 2, 138 byte
sumber
itertools
tidak pernah yang terpendek: pMATL , 10 byte
Cobalah online!
Penjelasan
Mirip dengan jawaban Oktaf saya. Pertimbangkan input
[10, 20, 30, 20, 10]
sebagai contoh.sumber
Oktaf , 47 byte
Cobalah online!
Penjelasan
Output kedua dan ketiga dari
mode
(diperoleh sebagai[~,b,c]=mode(...)
) masing-masing memberikan jumlah pengulangan (b
) dan array sel kolom (c
) dari elemen yang paling berulang dalam input (input(0)
). Array selc
kemudian diulang secara horizontalb
kali (repmat(c,1,b)
), dikonversi ke daftar yang dipisahkan koma ({:}
) dan dikontrakkan secara horizontal ([...]
) untuk memberikan matriks numerik, yang ditampilkan (disp(...)
).sumber
05AB1E ,
85 byteMenampilkan daftar datar secara berurutan
Menggunakan penyandian 05AB1E . Cobalah online!
sumber
CJam , 22 byte
Ini adalah blok anonim (fungsi) yang mengambil input dari atas tumpukan dan menggantikannya dengan output. Outputnya adalah array yang rata dengan elemen yang berdekatan.
Cobalah online!
Penjelasan
Pertimbangkan input
[10 20 30 20 10 ]
sebagai contoh.sumber
Perl 5, 58 byte
sumber
APL (Dyalog) , 22 byte
Membutuhkan
⎕ML←3
yang default pada banyak sistem.Program:
s/⍨(⌈/=⊢)≢¨s←⊂⍨(⍋⊃¨⊂)⎕
⎕
dapatkan input numerik (dievaluasi)(
...)
fungsi tacit⍋
indeks item naik⊃¨
setiap memilih dari⊂
seluruh array⊂⍨
partisi dengan memotong pada kenaikannyas←
simpan sebagai s≢¨
tally masing-masing(
...)
fungsi tacit⌈/
maksimum (penghitungan)=
sama dengan⊢
dengan argumen (penghitungan)s/⍨
Filter s dengan ituFungsi:
{s/⍨(⌈/=⊢)≢¨s←⊂⍨⍵[⍋⍵]}
{
...}
fungsi anonim di mana argumen berada⍵
⍵[⍋⍵]
sortir (lit. indeks dengan indeks item naik)⊂⍨
partisi dengan memotong pada kenaikannyas←
simpan sebagai s≢¨
tally masing-masing(
...)
fungsi tacit⌈/
maksimum (penghitungan)=
sama⊢
dengan argumen (penghitungan)s/⍨
Filter s dengan itu Cobalah secara online!sumber
PHP, 69 Bytes
Versi Online
Format output
key = value, value = count
PHP, 96 Bytes
Versi Online
Format output
1D Key = nilai
Kunci 2D = posisi dalam larik input untuk setiap nilai
PHP, 97 Bytes
sumber
JavaScript (ES6),
8483 byteMengembalikan array yang diratakan yang diurutkan.
Uji kasus
Tampilkan cuplikan kode
sumber
CJam, 24 byte
Saya ingin melakukan ini pada 05ab1e, tetapi saya menyerah: P
Ini sebuah blok. Input dan output adalah array pada stack.
Cobalah online!
Penjelasan:
sumber
$W=
alih-alih yang pertama0=
.Clojure, 65 byte
Tidak Disatukan:
sumber
C #, 145 Bytes
Ini pasti mungkin lebih baik juga, namun saya agak macet.
Penjelasan
Mungkin pendekatan yang sama sekali berbeda akan jauh lebih pendek, sehingga tantangan C # masih terbuka :)
sumber
Ruby , 57 byte
Cobalah online!
sumber