Saya memiliki daftar angka desimal:
4, 4, 4, 7, 7, 9, 9, 9, 9, 2, 2, 2, 4, 4
Daftar angka desimal dikenal sebagai item. Kami dapat membentuk "potongan" dari item-item ini dengan mengelompokkan angka-angka yang identik dan berdekatan. Saya ingin memberi setiap potongan nomor unik, mulai dari 1, dan bertambah 1 dalam urutan potongan muncul dalam daftar asli. Jadi, output untuk contoh yang diberikan akan terlihat seperti ini:
1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5
Masukkan format
Daftar digit. (0-9) Anda dapat menggunakan bahasa bawaan untuk membaca daftar ini sesuka Anda. Pengkodean: ASCII
Format output
Serangkaian angka desimal, dipisahkan oleh pembatas. Program Anda harus selalu menggunakan pembatas yang sama. Pembatas harus lebih dari 0 bit. Pengkodean: ASCII
Celah standar berlaku.
sumber
You may use your language built-ins to read this list however you want.
. Apakah itu berarti kita harus memasukkan string ke daftar konverter dalam kiriman kami? Dan apakah kita diizinkan untuk menampilkan sebagai daftar?Jawaban:
Python 3.8 (pra-rilis) , 41 byte
Cobalah online!
Puji walrus ajaib
:=
ekspresi penugasan.Python 2 , 42 byte
Cobalah online!
sumber
id
karena panjangnya 2 byte ...id
Python 2 , 44 byte
Cobalah online!
sumber
APL (dzaima / APL) , 7 byte SBCS
Fungsi awalan diam-diam anonim. Mencetak yang dipisahkan ruang.
Cobalah online!
2≠/
ketidaksetaraan berpasangan1,
tambahkan 1+\
jumlah kumulatifsumber
Jelly ,
65 byteCobalah online!
Disimpan satu byte berkat UnrelatedString !
Input dan output sebagai array (dengan kurung buka / tutup)
Bagaimana itu bekerja
sumber
Bahasa Wolfram (Mathematica) , 29 byte
Cobalah online!
sumber
05AB1E , 5 byte
Cobalah online!
sumber
¥Ā
bisa jugaüÊ
.Haskell , 40 byte
Cobalah online!
sumber
Perl 6 , 21 byte
Cobalah online!
Blok kode anonim yang mengambil daftar dan mengembalikan daftar. Ini bekerja dengan membandingkan apakah setiap pasangan elemen yang berdekatan tidak sama, daripada mengambil jumlah kumulatif daftar.
sumber
05AB1E , 4 byte
Cobalah online!
sumber
ƶ
... +1ηεγg
R , 33 byte
Cobalah online!
Menggunakan metode penjumlahan kumulatif yang sama dengan Luis Mendo dan lainnya.
sumber
MATL , 8 byte
Cobalah online!
Penjelasan:
sumber
Jelly , 4 byte
Cobalah online!
Bagaimana?
sumber
Oktaf / MATLAB, 25 byte
Cobalah online!
sumber
Haskell ,
4643 byteCobalah online!
Fungsi pointfree anonim yang mengambil daftar dan mengembalikan daftar
sumber
J , 12 byte
Cobalah online!
Mirip dengan jawaban APL Adám
sumber
Perl 5 , 27 byte
Cobalah online!
Opsi baris perintah
-p
membuat perl membaca baris input dari STDIN ke "variabel default"$_
. Itu kemudian mencari-menggantikan semua digit$_
dengan penghitung$i
. Dan$i
meningkat untuk setiap digit yang berbeda dari digit sebelumnya, yang juga di digit pertama sehingga penghitung dimulai1
. Digit sebelumnya disimpan di$p
.sumber
Pyth ,
1311 byteCobalah online!
-2 byte terima kasih kepada Tn. Xcoder
sumber
hMsM._+0nVt
untuk -2 byte.rQ8
sama denganr8
dan.n
bisa jugas
untuk -2Q
Scala , 75 byte
Cobalah online!
Jika input dan output harus dipisahkan String koma (dan bukan Daftar) maka 102 byte.
sumber
Jelly , 5 byte
Cobalah online!
Saya awalnya bertujuan untuk 4-byter (program yang sama tetapi tanpa
Ż
) tetapi kemudian dengan cepat menyadari bahwa a 1 harus ditambahkan setiap kali karena pengawasan ... Meskipun ada 5-byter lain di Jelly, saya akan sebenarnya menyimpan ini karena menggunakan metode yang berbeda.sumber
JavaScript (ES6), 30 byte
Mengambil input sebagai array bilangan bulat.
Cobalah online!
Berkomentar
sumber
PHP , 52 byte
Cobalah online!
Input melalui baris perintah, output ke
STDOUT
.Thx to @ Night2 untuk
'0' == 0
bugfix perbandingan sial !sumber
Julia 1.0 , 56 byte
Cobalah online!
sumber
Japt v2.0a0, 9 byte
Cobalah
sumber
Tambahkan ++ , 23 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Japt ,
87 byteCobalah
sumber
Retina 0.8.2 , 34 byte
Cobalah online! Penjelasan:
Cocokkan setiap angka secara bergantian.
Mulailah mencari ke belakang untuk sebanyak mungkin pertandingan. (Entri berikutnya akan berada di urutan kanan-ke-kiri karena begitulah tampilan bekerja.)
Lewati pemisah.
Cobalah untuk mencocokkan nomor yang sama seperti terakhir kali, tetapi gagal itu, cukup cocokkan nomor apa pun, tetapi ingat bahwa kami harus mencocokkan nomor baru.
Pastikan seluruh nomor cocok.
Hitung jumlah nomor baru.
sumber
Stax , 10 byte
Jalankan dan debug itu
Keluaran menggunakan ruang sebagai pembatas. Input mengikuti spesifikasi tepat menggunakan koma sebagai pemisah, dan sekarang melampirkan kawat gigi.
sumber
C (gcc) ,
6261 byteIni adalah salah satu dari sedikit entri yang saya lakukan di mana program lengkap lebih pendek dari pengiriman fungsi!
Pada pass pertama, saya tidak peduli dengan nilai sebelumnya, jadi saya bisa mengandalkan fakta bahwa itu
argv
adalah pointer ke suatu tempat dan sangat tidak mungkin berada di antara [0..9]!Cobalah online!
sumber
Scala , 114 byte
Cobalah online!
sumber
C (gcc) , 62 byte
Cobalah online!
Fungsi yang mengambil daftar dan panjangnya sebagai argumen.
C (gcc) , 60 byte
Cobalah online!
Keluaran dalam unary, dibatasi oleh0
ssumber