(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!
code-golf
array-manipulation
Giuseppe
sumber
sumber
4
ada diincomparables
, 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
.Jawaban:
Jelly ,
108 byte-2 Terima kasih kepada Erik the Outgolfer
Program lengkap yang menerima empat argumen baris perintah,
incomparables nomatch table x
yang mencetak representasi Jelly * dari daftarmatch
hasil fungsi R.Cobalah online!
Bagaimana?
misalnya dengan
incomparables nomatch table x
=[1,4], 2, [2,4], [4,3,2,1,0]
:* Daftar kosong direpresentasikan sebagai bukan apa-apa, daftar lenth satu diwakili hanya sebagai item, sedangkan daftar lain dilampirkan
[]
dan dibatasi oleh,
sumber
R , 83 byte
Cobalah online!
Hindari
match
,%in%
dansetdiff
.sumber
R , 55 byte
Dalam hal ini, kode tidak digunakan
match
dengan fungsionalitas penuhnya, hanya digunakan sebagaiindex
fungsi. Jawaban R pertama, jadi mungkin byte-wise sangat tidak efisien!Catatan (terima kasih kepada Giuseppe untuk informasinya) :
%in%
dansetdiff
keduanya juga diimplementasikan secara internalmatch
, jadi dengan sepenuhnya menyingkirkan fungsi yang sangat berguna ini akan menghasilkan kekacauan . Karena itu, ada hadiah 150 rep tanpa batas waktu untuk ini! (catatan yangsetdiff
diizinkan, meskipun)Cobalah online!
atau...
R , 5 byte
Cobalah online!
sumber
%in%
danmatch
; jika Anda ingin menemukan jawaban golf yang baik tanpa salah satu dari fungsi-fungsi itu (kemungkinan akan mengerikan), saya akan memberi hadiah ini.match
pengajuan snarkyifelse
menggunakan tip ini: codegolf.stackexchange.com/a/97826/59530match
: SJelly ,
98 byteCobalah online!
Sebuah program penuh yang mengambil tiga argumen:
[[table], incomparables]
,x
,nomatch
dalam urutan itu.sumber
C # (Visual C # Interactive Compiler) , 60 byte
Cobalah online!
sumber
Ruby , 44 byte
Diindeks nol.
Cobalah online!
sumber
R , 79 byte
Cobalah online!
R , 66 byte
Menggabungkan solusi saya dengan bagian-bagian dari solusi Nick .
Cobalah online!
sumber
Japt , 14 byte
Cobalah
sumber
Python 3 , 60 byte
Cobalah online!
sumber
R has 1-based indices, but a consistent alternative-based indices are acceptable.
Jadi Anda bisa menghapus-~
dan hanya menggunakan 0-indexing untuk -1 byte.t.index(v)if v in{*t}-{*i}else n
memiliki bytecount yang sama persis dengan solusi Anda saat iniv in{*t}-{*i}and-~t.index(v)or n
, hahaPowerShell , 63 byte
Cobalah online!
Diindeks 0
sumber
JavaScript (ES6), 53 byte
Cobalah online!
sumber
Perl 6 , 45 byte
Cobalah online!
Blok kode anonim yang mengambil input kari, sukai,
f(table, nomatch, incomparables)(x)
dan mengembalikan kecocokan 0 yang diindeks.Penjelasan:
sumber
$_∉d&&b.antipairs.Map{$_}||c
yang seharusnya bekerja dengan baik tetapi untuk nilai falsey 0. Yang pertama ($ _: k) adalah solusi hebat yang menghindari paksaan antipairs.Map yang panjang.Arang , 14 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. 1-diindeks. Penjelasan:
sumber
C (gcc) , 125 byte
1-diindeks.
Mengingat bahwa saya tidak dapat menggunakan nilai sentinel dalam array yang diteruskan, saya perlu memberikan batasan array untuk setiap array.
Cobalah online!
sumber
Attache , 39 byte
Cobalah online!
Verifikasi yang cukup sederhana. Perhatikan bahwa urutan argumen berbeda dengan urutan yang cocok; khususnya,
x
adalah argumen terakhir daripada argumen pertama, dan sesuai dengan_4
dalam cuplikan di atas.Penjelasan
sumber
Haskell,
5756 byteAgar argumen adalah:
table
,nomatch
,incomparables
,x
.Cobalah online!
sumber
05AB1E , 7 byte
Diindeks 0. Input dalam urutan:
incomparables, table, x, nomatch
.Cobalah online.
Penjelasan:
sumber