Ein einfacher Start in die Woche! Sie erhalten drei Arrays: das Basis-Array B
, das Wert-Array V
und das Index-Array I
. Sie sollten ein anderes Array erzeugen, in das die Werte von an den durch angegebenen Indizes V
eingefügt B
werden I
. Hier ist ein Beispiel:
Base: [5, 1, 4, 1, 3]
Values: [0, 0, 7]
Indices: [5, 0, 3]
Die Indizes zeigen auf folgende Positionen im Basisarray:
[ 5, 1, 4, 1, 3 ]
^ ^ ^
0 3 5
Wenn Sie also die entsprechenden Elemente aus dem Wertearray einfügen, sollte das Ergebnis sein:
[0, 5, 1, 4, 7, 1, 3, 0]
Regeln
Sie können ein Programm oder eine Funktion schreiben, Eingaben über STDIN (oder die nächstgelegene Alternative), Befehlszeilenargumente oder Funktionsargumente vornehmen und das Ergebnis über STDOUT (oder die nächstgelegene Alternative), Funktionsrückgabewert oder durch Ändern des als B
Parameter angegebenen Arrays ausgeben .
Wenn es sich bei Ihrer Einreichung um eine Funktion handelt, die auf irgendeine Weise geändert werden kann I
und nicht für die Ausgabe verwendet wird.V
B
Sie können die folgenden Annahmen bezüglich der Eingabe treffen:
- Alle Elemente des Basis- und Wertearrays sind nicht negative Ganzzahlen.
- Das Wertearray enthält höchstens ein Element mehr als das Basisarray.
- Das Wertearray und das Indexarray haben die gleiche Anzahl von Elementen.
- Das Index-Array enthält keine wiederholten Indizes, und alle Indizes befinden sich im Bereich.
- Die Basis- und Wertearrays können wiederholte Elemente enthalten.
- Einige oder alle Arrays sind möglicherweise leer.
- Sie dürfen nicht davon ausgehen, dass die Indizes in einer bestimmten Reihenfolge angegeben sind.
- Sie können Eingaben empfangen und Ausgaben in jedem geeigneten, eindeutigen Zeichenfolgen- oder Listenformat erstellen. Sie können die drei Arrays auch in einer anderen Reihenfolge erhalten.
- Sie können zwischen 0-basierter und 1-basierter Indizierung wählen.
Dies ist Codegolf, daher gewinnt die kürzeste Antwort (in Bytes).
Testfälle
Wird im Format B V I => Result
für die 0-basierte Indizierung angegeben. Wenn Sie eine 1-basierte Indizierung verwenden, erhöhen Sie die Elemente des dritten Arrays um 1.
[] [] [] => []
[] [1] [0] => [1]
[1,2] [] [] => [1,2]
[1,2] [3] [0] => [3,1,2]
[1,2] [3] [1] => [1,3,2]
[1,2] [3] [2] => [1,2,3]
[0,0,0] [1,1,1,1] [0,1,2,3] => [1,0,1,0,1,0,1]
[5,1,4,1,3] [0,0,7] [5,0,3] => [0,5,1,4,7,1,3,0]
[1,2,3,4] [4,3,2,1] [4,0,3,1] => [3,1,1,2,3,2,4,4]
Lassen Sie mich wissen, wenn Sie auf andere interessante Randfälle stoßen, und ich werde sie hinzufügen.
Bestenliste
Hier ist ein Stack-Snippet, um sowohl eine reguläre Rangliste als auch eine Übersicht der Gewinner nach Sprache zu erstellen.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
NULL
einem leeren Array für Sprachen, in denen ein leeres Array vorhanden istNULL
?