(Wir werden jedoch keine finden Find
oder fangen tryCatch
)
Dies ist Teil zwei einer mehrteiligen Serie zur Implementierung einiger interessanter R-Funktionen. Teil eins finden Sie hier .
Die Aufgabe:
Sie müssen die match
Funktion von R in so wenigen Bytes wie möglich implementieren .
Eingang:
x
, eine möglicherweise leere Liste / Array von ganzen Zahlentable
, eine möglicherweise leere Liste / Array von ganzen Zahlennomatch
ein einzelner ganzzahliger Wertincomparables
, eine möglicherweise leere Liste / Array von ganzen Zahlen
Ausgabe:
- Ein einzelnes Array / eine Liste von ganzen Zahlen mit
O
der gleichen Länge wiex
, wobei jeder WertO[i]
entweder darstellt:- Der Index
j
des ersten Wertes intable
wheretable[j]==x[i]
nomatch
Anzeigt, dass kein Wert intable
gleichx[i]
OR , daßx[i]
in der Liste derincomparables
.
- Der Index
Testfälle
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]
Weitere Testfälle können nach Bedarf generiert werden.
Zusätzliche Regeln:
- R hat Indizes auf der Basis von 1, aber konsistente Indizes auf der Basis von Alternativen sind akzeptabel. Sie können also Indizes verwenden, die bei 3 oder 17 oder was auch immer beginnen, dies muss jedoch konsistent sein, und Sie müssen dies in Ihrer Antwort angeben.
- Wenn Sie eine Sprache ausgewählt haben, die dies unterstützt, implementieren Sie bitte auch Ihre eigene Lösung.
- Erklärungen sind willkommen.
Das ist Code-Golf , also gewinnt die kürzeste Lösung in Bytes!
4
ist in incomparables
, so kann es nicht zugeordnet werden. Wenn Ihre Sprache keine negativen Zahlen unterstützt, ist es in Ordnung, nicht negative Zahlen zu fordern, aber geben Sie diese Annahme in Ihrer Einreichung an.
make
.