Memasukkan
Ambil daftar nilai x i masing-masing dipasangkan dengan kunci y i .
[(x1, y1), (x2, y2), ...]
Keluaran
Kembalikan daftar L yang hanya berisi nilai dari set { x i }.
- Panjang L harus sama dengan jumlah kunci unik k pada set { y i }.
- Untuk setiap kunci unik k, harus ada nilai dari { x i } yang memiliki kunci k .
Detail
- Celah standar tidak diijinkan.
- Anda dapat mengasumsikan semua nilai dalam input adalah bilangan bulat tidak negatif.
- Mungkin ada nilai dan kunci duplikat.
- Anda dapat mengasumsikan setidaknya ada satu pasangan nilai / kunci dalam input.
- Jika Anda memilih untuk mengambil dua daftar dengan panjang yang sama sebagai input (satu untuk nilai, satu untuk kunci) itu baik-baik saja.
- Anda tidak boleh mengambil input lain apa pun.
- Urutan daftar yang Anda hasilkan tidak masalah.
- The x i yang Anda pilih untuk setiap tombol tidak masalah.
Misalnya, dengan input [[0, 0], [1, 3], [2, 3]]
Anda dapat mengembalikan salah satu [0, 1]
atau[0, 2]
atau permutasi ini.
Contohnya
[[1, 2], [3, 2], [3, 0]] -> [1, 3] or [3, 3]
[[7, 2], [7, 0], [7, 1]] -> [7, 7, 7]
[[4, 0], [4, 0], [9, 1], [5, 2]] -> [4, 9, 5]
[[9, 1], [99, 10], [5, 5], [0, 3]] -> [9, 99, 5, 0]
Bytes paling sedikit menang.
code-golf
array-manipulation
dylnan
sumber
sumber
key value key value key value ...
?key
? Bisakah kita mengambil dua array sebagaikeys
danvalues
sebagai input? Atau buat Peta khusus kami sendiri yang mengambil banyak nilai sebagai input (atau mungkin daftar pasangan nilai kunci)?If you prefer to take two lists of equal length as input that is fine.
Apakah ini yang Anda maksud? Saya tidak tahu maksud Anda tentang "Maps".Jawaban:
Python 2 , 34 byte
Cobalah online!
Mengambil input sebagai daftar nilai dan daftar kunci.
Hasilkan kamus, bertukar kunci dan nilai, yang hanya menyisakan nilai y unik. Kembalikan semua nilai x yang sesuai
sumber
Jelly , 2 byte
Cobalah online!
Mengambil dua daftar dengan panjang yang sama, pertama adalah kunci, kedua adalah nilai.
sumber
J , 4 byte
Bagaimana?
Argumen kiri
x
adalah daftar kunci, yang kanany
- daftar nilai/.
kelompoky
menurutx
{.
mengambil elemen pertama dari setiap grupCobalah online!
sumber
Clojure,
2018 byteIni mengambil daftar nilai dan kunci sebagai argumen, dalam urutan itu.
sumber
Python 3 , 42 byte
Cobalah online!
a = nilai
b = kunci
sumber
Haskell ,
4947 byteCobalah online! Masukan sebagai daftar tupel, mis
[(1, 2), (3, 2), (3, 0)]
.Input sebagai daftar daftar (49 byte)
Cobalah online!
sumber
JavaScript (ES8), 43 byte
Mengambil input sebagai 2 daftar berbeda dalam sintaks currying
(values)(keys)
.Cobalah online!
sumber
{ [Function: o] '0': 1, '2': 1 }
.Sekam , 4 byte
Cobalah online!
Bagaimana?
sumber
Stax , 5 byte
Jalankan dan debug itu
Membawa dua array, nilai pertama, lalu kunci.
Penjelasan:
sumber
R , 30 byte
Cobalah online!
sumber
Japt , 8 byte
Japt Interpreter
Terima kasih kepada Shaggy karena menyimpan 1 byte terakhir
Logika ulang sepenuhnya. Mengambil isyarat dari jawaban Luis, tapi saya pikir itu masih membaik. Sekarang mengambil input sebagai dua daftar
keys, values
,. Ternyata saya masih kurang optimal.Penjelasan:
sumber
¥
tidak diperlukan;)b
, tidak menyadari sama sekali bahwa hanya satu dari mereka yang mengambil fungsi.Vâ £gVbX
.Ruby , 27 byte
Cobalah online!
Mengambil input sebagai dua array (footer mengubah kasus uji asli ke dalam format ini).
sumber
05AB1E , 4 byte
Ambil dua daftar input: pertama nilainya, lalu kunci.
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
sumber
Java 8, 82 byte
Lambda dari aliran
int[]
pasangan kejava.util.Collection<Integer>
.Cobalah secara Online
sumber
Julia 0,6 ,
363432 byteCobalah online!
(mencukur dua byte berkat @JonathanFrech)
(dua byte lainnya dengan mengganti
∈
dengan=
dalam pemahaman)Format input yang ditentukan dalam pertanyaan
[[1, 2], [2, 7]]
berfungsi seperti halnya di Julia sebagai array array yang berisi pasangan nilai kunci (potensial), satu-satunya hal yang harus diperhatikan adalah bahwa kunci menjadi yang kedua dan nilai yang pertama.Sedikit perubahan, untuk bytecount yang sama,
Cobalah online!
sumber
Julia 0,6 ,
292619 byteCobalah online!
Gaya bebas poin. Mengambil input sebagai array kunci dan array nilai.
Solusi yang lebih lama:
2926 byteCobalah online!
-3 byte menggunakan sintaks operator bukan lambda
Mengambil input sebagai array nilai dan array kunci.
sumber
MATL , 9 byte
Cobalah online!
Mungkin suboptimal, tapi hei, itu berhasil!
Menggunakan fakta bahwa (a) input dijamin hanya memiliki bilangan bulat non-negatif, (b) MATL memperluas array yang Anda coba tetapkan ke indeks yang tidak ada.
v
- buat array kosong di tumpukani
- dapatkan berbagai nilaiiQ
- dapatkan larik kunci, naik 1 (jadi nilai minimum adalah 1, bukan 0, karena pengindeksan MATL berbasis 1)(
- pengindeksan penugasan - gunakan array kunci sebagai indeks dan tetapkan nilai untuk indeks tersebut (jika ada kunci yang diulang, hanya nilai terakhir yang tersisa di lokasi itu)5M
- mendapatkan input terakhir dari panggilan terakhir - yang akan menjadi array indeks yang kami gunakanu)
- ambil daftar unik dari indeks tersebut, indeks dengan daftar itu, dan biarkan hasil itu (yang merupakan daftar nilai kunci unik) di tumpukansumber
Japt ,
2420168 byte-4 byte terima kasih kepada @Shaggy
Mengambil input sebagai
key, values
Cobalah online!
Japt ,
2018 byteCobalah online!
sumber
1
Membalikkan input,2
Periksa pintasan Unicode.m@A?B:C} k¥B
, Anda mungkin ingin mencobak@A} m@C
:-)Pyth , 7 byte
Semua testcases .
sumber
Perl 5
-pa
, 24 byteCobalah online!
Mengambil input dalam format
key value key value key value ...
. Footer TIO hanya untuk memisahkan test case.sumber
Perl 6 , 25 byte
Cobalah
Diperluas:
sumber
C-Sharp, 63 byte
Mengembalikan enumerable of integer.
sumber
Bahasa Wolfram (Mathematica) , 25 byte
Cobalah online!
sumber
Karat , 81 byte
Cobalah online!
Membawa dua iterator, mengembalikan iterator.
sumber
Perl 6 , 12 byte
Cobalah online!
Memaksa daftar yang diberikan ke Hash dan kemudian mengembalikan nilai. Ini berfungsi pada daftar pasangan, dan daftar
key, value, key, value...
.sumber