(ama bir şey bulmayacak Find
veya yakalamayacağız tryCatch
)
Bu, bazı ilginç R fonksiyonlarını uygulamanın çok parçalı serisinin ikinci kısmıdır. Birinci bölüm burada bulunabilir .
Görev:
R'nin match
fonksiyonunu mümkün olduğu kadar az baytta uygulayacaksınız .
Giriş:
x
, muhtemelen boş bir liste / tamsayı dizisitable
, muhtemelen boş bir liste / tamsayı dizisinomatch
, tek bir tamsayı değeriincomparables
, muhtemelen boş bir liste / tamsayı dizisi
Çıktı:
- her değerin ikisini birden temsil ettiği ,
O
eşit uzunlukta tam sayıların bulunduğu bir dizi / liste :x
O[i]
- Endeks
j
içinde ilk değerdentable
table[j]==x[i]
nomatch
, Hiçbir değer gösterentable
na eşitx[i]
TD bux[i]
listesinde olupincomparables
.
- Endeks
Test Kılıfları
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]
Gerektiğinde daha fazla test durumu oluşturulabilir.
Ek kurallar:
- R, 1 bazlı endekslere sahiptir, ancak tutarlı bir alternatif bazlı endeksler kabul edilebilir. Böylece, 3 veya 17'de başlayan endeksleri veya her neyse kullanabilirsiniz, ancak bu tutarlı olmalı ve bunu cevabınızda belirtmelisiniz.
- Dil seçtiyseniz, bunu yapan bir yerleşik yapı varsa, lütfen kendi çözümünüzü de uygulayın.
- Açıklamalar takdir edilmektedir.
Bu kod golf , bayt cinsinden en kısa çözüm kazanıyor!
4
olduğunu incomparables
o eşleşti edilemez yüzden. Diliniz negatif sayıları destekleyemiyorsa, negatif olmayan sayılar istemeniz iyi olur, ancak gönderiminizde bu varsayımı belirtin.
make
.