Anda akan menerima array dan harus mengembalikan jumlah bilangan bulat yang terjadi lebih dari satu kali.
[234, 2, 12, 234, 5, 10, 1000, 2, 99, 234]
Ini akan mengembalikan 2, karena masing-masing 234
dan 2
muncul lebih dari sekali.
[234, 2, 12, 234]
[2, 12, 234, 5, 10, 1000, 2]
Daftarnya tidak akan lebih dari 100k bilangan bulat, dan bilangan bulat di dalam daftar akan selalu berada di antara -100k dan 100k.
Bilangan bulat harus dihitung jika terjadi lebih dari satu kali, jadi jika bilangan bulat terjadi 3 kali maka itu hanya akan dihitung sebagai satu bilangan bulat yang diulang.
Uji kasus
[1, 10, 16, 4, 8, 10, 9, 19, 2, 15, 18, 19, 10, 9, 17, 15, 19, 5, 13, 20] = 4
[11, 8, 6, 15, 9, 19, 2, 2, 4, 19, 14, 19, 13, 12, 16, 13, 0, 5, 0, 8] = 5
[9, 7, 8, 16, 3, 9, 20, 19, 15, 6, 8, 4, 18, 14, 19, 12, 12, 16, 11, 19] = 5
[10, 17, 17, 7, 2, 18, 7, 13, 3, 10, 1, 5, 15, 4, 6, 0, 19, 4, 17, 0] = 5
[12, 7, 17, 13, 5, 3, 4, 15, 20, 15, 5, 18, 18, 18, 4, 8, 15, 13, 11, 13] = 5
[0, 3, 6, 1, 5, 2, 16, 1, 6, 3, 12, 1, 16, 5, 4, 5, 6, 17, 4, 8] = 6
[11, 19, 2, 3, 11, 15, 19, 8, 2, 12, 12, 20, 13, 18, 1, 11, 19, 7, 11, 2] = 4
[6, 4, 11, 14, 17, 3, 17, 11, 2, 16, 14, 1, 2, 1, 15, 15, 12, 10, 11, 13] = 6
[0, 19, 2, 0, 10, 10, 16, 9, 19, 9, 15, 0, 10, 18, 0, 17, 18, 18, 0, 9] = 5
[1, 19, 17, 17, 0, 2, 14, 10, 10, 12, 5, 14, 16, 7, 15, 15, 18, 11, 17, 7] = 5
code-golf
array-manipulation
jayko03
sumber
sumber
Once it counts the repetition, don't count again
? Juga, karena kita ingin menemukan pengulangan bilangan bulat tertentu, bagaimana kita tahu bilangan bulat mana yang harus dicari jika kita tidak diberikannya? Terakhir, kasus uji agak membingungkan; yang merupakan output dan yang merupakan input?Jawaban:
R , 20 byte
Apakah ini yang Anda cari? Penggunaan
table
untuk menghitung kemunculan dari masing-masing nilaiscan
input. Tes jika hitung adalah> 1 dan jumlah jejak.Cobalah online!
sumber
duplicated
lebih dulu - yang sederhanatable
sangat berguna untuk bermain golf!Haskell , 42 byte
Cobalah online! Menyalahgunakan fakta bilangan bulat dalam daftar dijamin dalam -100k dan 100k.
sumber
Bash + coreutils, 18
Cobalah online!
sumber
APL (Dyalog Unicode) ,
98 byte SBCS-1 terima kasih kepada ngn
Fungsi awalan diam-diam anonim.
Cobalah online!
+/
jumlah dari1<
apakah 1 kurang dari...
⌸
untuk setiap elemen unik:⊢∘
mengabaikan elemen unik yang sebenarnya,≢
hitungan kemunculannyasumber
{1<≢⍵}⌸
->1<⊢∘≢⌸
C (dentang)
17511795 byteCobalah online!
Ini adalah pertama kalinya saya mengirimkan salah satu dari ini, jadi beri tahu saya jika ada masalah dengan pemformatan atau apa pun.
Pembaruan dari komentar:
pengiriman asli
sumber
d,i;c(*a,*b){return*a-*b;}r(l[],m){qsort(l,m,4,c);for(i=d=0;++i<m;)d+=((l[i+1]-l[i]||i>m-2)&&l[i-1]==l[i]);return d;}
. Seperti yang dicatat oleh ASCII saja,include
s tidak mempengaruhi kompilasi program Andad;c(*a,*b){return*a-*b;}r(*l,m){qsort(l,m,4,c);for(d=0;~m--;)d+=(!m||l[1]-*l)&l[-1]==*l++;return d;}
c(*a,*b){return*a-*b;}r(*l,m){qsort(l,m,4,c);return((!m||l[1]-*l)&l[-1]==*l)+(m?r(l+1,m-1):0);}
C # (Visual C # Interactive Compiler) , 40 byte
Draf pertama spesifikasi tidak jelas, dan saya pikir itu berarti mengembalikan semua elemen yang muncul lebih dari sekali. Ini adalah versi yang diperbarui.
Entah bagaimana saya tidak melihat bahwa kode saya mengembalikan jumlah elemen yang muncul sekali. Terima kasih kepada Paul Karam karena menangkap itu!
Cobalah online!
sumber
n=>n.GroupBy(c=>c).Count(c=>c.Count()>=2)
. OP mengatakan jawaban dari daftar ini adalah 2. Kode Anda kembali 5. Perubahan yang saya berikan kepada Anda mengembalikan 2.>1
untuk menjaga hitungan 40 bytePython 3 , 38 byte
Cobalah online!
sumber
J ,
119 byte-2 byte terima kasih untuk Jonah!
Cobalah online!
Solusi asli:
Cobalah online!
Penjelasan:
sumber
1#.1<1#.=
untuk 9 byte + menyenangkan untuk mengklasifikasikan diri sendiri.Ruby , 34 byte
Cobalah online!
sumber
05AB1E , 4 byte
Cobalah online! atau sebagai Test Suite
Penjelasan
sumber
Jelly , 4 byte
Cobalah online!
...Atau
ĠIƇL
Bagaimana?
IƇ
akan menyaring untuk menjaga hanya hasil yang benar dariI
([[6],[3,6]]
) yang juga memiliki panjang yang diinginkan.sumber
Perl 6 , 15 byte
Cobalah online!
Cukup jelas. Blok kode anonim yang mendapat hitungan (
+
)Set
dari elemen di antararepeated
elemen input (*
).Saya menyadari bahwa saya telah memposting hampir solusi yang sama persis untuk pertanyaan terkait.
sumber
Python 3 , 63 byte
Cobalah online!
sumber
Java 8,
7473 byteCobalah online.
Penjelasan:
sumber
APL (Dyalog Extended) ,
87 byte SBCSFungsi awalan tersembunyi anonim menggunakan metode Jonah .
Cobalah online!
+/
jumlah total kejadiansecara harfiah jumlah Kebenaran
1<
di mana seseorang kurang dari∪
elemen unik '⍧
masuk⊢
argumen yang tidak dimodifikasisumber
Haskell , 41 byte
Cobalah online!
Hitung akhiran di mana elemen pertama
h
muncul tepat sekali di bagiant
yang muncul setelahnya.Haskell , 40 byte
Cobalah online!
Mencuri metode dari jawaban lain.
sumber
Haskell, 41 byte
Solusi ini pada dasarnya menghitung berapa banyak elemen dalam daftar yang memiliki elemen yang sama persis muncul satu kali kemudian dalam daftar.
sumber
Haskell , 47 byte
Cobalah online!
Ini adalah pendekatan naif. Kemungkinan ada sesuatu yang bisa dilakukan untuk memperbaikinya.
Kami kembali
0
untuk daftar kosongDalam hal daftar yang tidak kosong dimulai dengan
a
dan kemudianb
.Jika penyaringan
a
keluarb
berbeda darib
(yaitu adaa
dib
) maka kami mengembalikan 1 lebih dari yangf
diterapkanb
dengana
s disaring.Jika pemfilteran
a
tidak berubah,b
maka kita jalankanf
sisanya.Berikut ini adalah pendekatan serupa lainnya yang memiliki panjang yang sama:
Cobalah online!
sumber
JavaScript (ES6), 40 byte
Cobalah online!
sumber
Bahasa Wolfram 34 byte
Gather
mengelompokkan bilangan bulat identik ke dalam daftar.DeleteCases[...{x_}]
menghilangkan daftar yang berisi satu nomor.Length
mengembalikan jumlah daftar yang tersisa (masing-masing berisi dua atau lebih bilangan bulat yang identik.sumber
Count[{_,__}]@*Gather
Japt ,
1211986 byteDengan banyak bantuan dari @ ASCII-Only, dan saran dari @Shaggy dan @Luis felipe De jesus Munoz.
Cobalah online!
sumber
Pyth, 6 byte
Coba di sini
Penjelasan
sumber
Brachylog , 7 byte
Cobalah online!
Penjelasan:
sumber
PHP, 39 byte
kesempatan yang baik untuk menggunakan variabel variabel :
mengambil input dari argumen baris perintah. Jalankan dengan
-nr
atau coba online .$argv[0]
adalah-
dan itu hanya muncul sekali dalam argumen, sehingga tidak mempengaruhi hasilnya.sumber
Elemen , 40 byte
Cobalah online!
Ini membutuhkan masukan untuk menjadi dalam format yang tepat seperti
[234, 2, 1000, 2, 99, 234]
(tertutup dengan[]
koma dan spasi di antara bilangan bulat).Penjelasan:
sumber
Retina 0.8.2 , 19 byte
Cobalah online! Tautan termasuk test suite yang membagi setiap baris pada koma. Penjelasan:
Urutkan nilai yang sama bersama.
Hitung jumlah proses setidaknya dua nilai.
sumber
Bersih ,
5954 byteCobalah online!
Urutkan daftar, kelompokkan elemen yang berdekatan, dan hitung jumlahnya dengan lebih dari 1 item.
sumber
Rust, 126 byte
Saya menyerah. Ini pada dasarnya sama dengan Ruby. Ada "cara lain" membuat array dan mengindeks ke dalamnya menggunakan nilai-nilai dalam vektor input, +100000, namun konversi jenis (seperti usize / as i32) mengambil terlalu banyak ruang.
sumber
MATL , 5 byte
Cobalah online! Atau verifikasi semua kasus uji .
Penjelasan
sumber
k, 8 byte
+/1<#:'=
terbaca sebagai: jumlah (panjang masing-masing kelompok)> 1
Gunakan contoh (test case pertama)
menulis 4
sumber