(kami tidak akan menemukan Find
atau menangkap tryCatch
, meskipun)
Ini adalah bagian kedua dari rangkaian multi-bagian penerapan beberapa fungsi R yang menarik. Bagian satu dapat ditemukan di sini .
Tugas:
Anda harus mengimplementasikan fungsi Rmatch
sesedikit mungkin byte.
Memasukkan:
x
, daftar / array bilangan bulat yang mungkin kosongtable
, daftar / array bilangan bulat yang mungkin kosongnomatch
, nilai integer tunggalincomparables
, daftar / array bilangan bulat yang mungkin kosong
Keluaran:
- satu array / daftar bilangan bulat
O
dengan panjang yang samax
, di mana setiap nilaiO[i]
mewakili:- Indeks
j
nilai pertama ditable
manatable[j]==x[i]
nomatch
, menunjukkan bahwa tidak ada nilai dalamtable
sama denganx[i]
OR yangx[i]
ada dalam daftarincomparables
.
- Indeks
Uji Kasus
All in the form x, table, nomatch, incomparables -> output
outputs
[], [1,2,3], 0, [5] -> []
[1, 2, 3], [], 0, [5] -> [0, 0, 0]
[9, 4, 3, 6, 3], [9, 8, 7, 6, 5, 4, 3, 2, 1], -1, [4] -> [1, -1, 7, 4, 7]
[8, 6, 7, 5, 3, 0, 9], [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6], 1000, [1] -> [12, 8, 14, 5, 1, 1000, 6]
Lebih banyak kasus uji dapat dihasilkan sesuai kebutuhan.
Aturan tambahan:
- R memiliki indeks berbasis 1, tetapi indeks berbasis alternatif yang konsisten dapat diterima. Jadi, Anda dapat menggunakan indeks yang dimulai pada 3 atau 17 atau apa pun, tetapi ini harus konsisten, dan Anda harus menunjukkan ini dalam jawaban Anda.
- Jika Anda memilih bahasa yang memiliki builtin yang melakukan ini, harap juga mengimplementasikan solusi Anda sendiri.
- Penjelasan dihargai.
Ini adalah kode-golf , jadi solusi terpendek dalam byte menang!
4
ada di incomparables
, jadi tidak bisa dicocokkan. Jika bahasa Anda tidak dapat mendukung angka negatif, maka boleh saja untuk meminta angka non-negatif, tetapi sebutkan asumsi itu dalam kiriman Anda.
make
.