(Wir werden jedoch keine finden Findoder 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 matchFunktion 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 Zahlennomatchein einzelner ganzzahliger Wertincomparables, eine möglicherweise leere Liste / Array von ganzen Zahlen
Ausgabe:
- Ein einzelnes Array / eine Liste von ganzen Zahlen mit
Oder gleichen Länge wiex, wobei jeder WertO[i]entweder darstellt:- Der Index
jdes ersten Wertes intablewheretable[j]==x[i] nomatchAnzeigt, dass kein Wert intablegleichx[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!
4ist 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.