Tujuan Anda adalah untuk menghitung persimpangan set dua daftar bilangan bulat. Persimpangan didefinisikan sebagai kelompok bilangan bulat unik tanpa urutan yang ditemukan setidaknya satu kali dalam kedua daftar input.
Memasukkan
Input mungkin dalam format apa pun yang diinginkan (parameter fungsi, stdio, dll.), Dan terdiri dari dua daftar bilangan bulat. Anda banyak yang tidak berasumsi apa-apa tentang setiap daftar selain mereka mungkin mengandung jumlah bilangan bulat non-negatif (yaitu mereka tidak disortir, mungkin berisi duplikat, mungkin memiliki panjang yang berbeda, dan bahkan mungkin kosong). Diasumsikan bahwa setiap bilangan bulat akan sesuai dengan tipe bilangan bulat bertanda asli bahasa Anda, mungkin lebih dari 1 digit desimal, dan ditandatangani.
Input contoh:
1 4 3 9 8 8 3 7 0
10 1 4 4 8 -1
Keluaran
Outputnya berupa daftar seperti bilangan bulat yang mewakili persimpangan set dari dua daftar ke format yang diinginkan (nilai pengembalian, stdio, dll.). Tidak ada persyaratan bahwa output diurutkan, meskipun Anda dipersilakan untuk memberikan implementasi yang kebetulan selalu diurutkan. Output harus membentuk himpunan tidak terurut yang valid (mis. Tidak boleh mengandung nilai duplikat apa pun).
Contoh kasus uji (perhatikan bahwa urutan output tidak penting):
Dua baris pertama adalah daftar input, baris ketiga adalah output. (empty)
menunjukkan daftar kosong.
(empty)
(empty)
(empty)
1000
(empty)
(empty)
3 1 2 4 3 1 1 1 1 3
3 1 -1 0 8 3 3 1
1 3
1 2 1
3 3 4
(empty)
Mencetak gol
Ini adalah kode golf; jawaban terpendek dalam byte menang.
Lubang loop standar dilarang. Anda dapat menggunakan fitur bawaan yang tidak dirancang untuk operasi seperti set.
Fitur bawaan yang terlarang:
- mengatur pembuatan / menghapus duplikat
- atur perbedaan / persimpangan / gabungan
- Pengujian keanggotaan umum (mis. Apa pun yang mirip dengan
in
kata kunci dengan Python,indexOf
-seperti fungsi, dll). Perhatikan bahwa penggunaan konstruksi "foreach item in list" diperbolehkan (dengan asumsi mereka tidak melanggar salah satu dari pembatasan lain), meskipun fakta bahwa Python menggunakan kembaliin
kata kunci untuk membuat konstruksi ini. - Built-in terlarang ini adalah "viral", yaitu jika ada built-in yang lebih besar yang mengandung salah satu dari sub-fitur ini, ia juga dilarang (misalnya, memfilter berdasarkan keanggotaan dalam daftar).
Setiap bawaan yang tidak ada dalam daftar di atas diizinkan (mis. Penyortiran, pengujian kesetaraan bilangan bulat, daftar ditambahkan / dihapus berdasarkan indeks, pemfilteran, dll.).
Misalnya, ambil dua contoh snippet berikut (kode mirip-Python):
# prohibited: filters by testing if each value in tmpList is a member of listA
result = tmpList.filter(listA)
# ok: filtering by a lambda which manually iterates over listA and checks for equality
def my_in_func(val, slist):
for a in slist:
if(val == a):
return True
return False
result = filter(lambda v: my_in_func(val, listA), tmpList)
Anda dipersilakan untuk mengimplementasikan sendiri fitur-fitur seperti set ini dan mereka akan dihitung untuk skor Anda.
Solusi Anda harus diselesaikan dalam jumlah waktu yang wajar (katakanlah, kurang dari satu menit pada perangkat keras apa pun yang Anda miliki untuk dua daftar ~ masing-masing panjangnya 1000).