Un golf simple pour commencer la semaine! Vous disposez de trois tableaux: le tableau de base B
, le tableau de valeurs V
et le tableau d'index I
. Vous devez produire un autre tableau dans lequel les valeurs de V
sont insérées dans B
les indices spécifiés par I
. Voici un exemple:
Base: [5, 1, 4, 1, 3]
Values: [0, 0, 7]
Indices: [5, 0, 3]
Les indices pointent aux positions suivantes dans le tableau de base:
[ 5, 1, 4, 1, 3 ]
^ ^ ^
0 3 5
Ainsi, en insérant les éléments correspondants du tableau de valeurs, le résultat devrait être:
[0, 5, 1, 4, 7, 1, 3, 0]
Règles
Vous pouvez écrire un programme ou une fonction, en prenant une entrée via STDIN (ou l'alternative la plus proche), des arguments de ligne de commande ou des arguments de fonction et sortir le résultat via STDOUT (ou l'alternative la plus proche), la valeur de retour de la fonction, ou en modifiant le tableau donné comme B
paramètre .
Si votre soumission est une fonction I
et V
peut être modifiée de n'importe quelle manière, ainsi que B
si elle n'est pas utilisée pour la sortie.
Vous pouvez émettre les hypothèses suivantes sur l'entrée:
- Tous les éléments du tableau de base et de valeur seront des entiers non négatifs.
- Le tableau de valeurs aura au plus un élément de plus que le tableau de base.
- Le tableau de valeurs et le tableau d'index auront le même nombre d'éléments.
- Le tableau d'index ne contiendra pas d'indices répétés et tous les indices seront dans la plage.
- Les tableaux de base et de valeur peuvent contenir des éléments répétés.
- Tout ou partie des tableaux peut être vide.
- Vous ne devez pas supposer que les indices sont donnés dans un ordre particulier.
- Vous pouvez recevoir des entrées et produire des sorties dans n'importe quel format de chaîne ou de liste pratique et sans ambiguïté. Vous pouvez également choisir de recevoir les trois tableaux dans un ordre différent.
- Vous pouvez choisir entre l'indexation basée sur 0 et celle basée sur 1.
Il s'agit du code golf, donc la réponse la plus courte (en octets) l'emporte.
Cas de test
Donné au format B V I => Result
pour l'indexation basée sur 0. Si vous utilisez une indexation basée sur 1, incrémentez les éléments du troisième tableau de 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]
Faites-moi savoir si vous rencontrez d'autres cas de bord intéressants, et je les ajouterai.
Classement
Voici un extrait de pile pour générer à la fois un classement régulier et un aperçu des gagnants par langue.
Pour vous assurer que votre réponse s'affiche, veuillez commencer votre réponse avec un titre, en utilisant le modèle Markdown suivant:
# Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores dans le titre, en les barrant. Par exemple:
# Ruby, <s>104</s> <s>101</s> 96 bytes
NULL
d'un tableau vide pour les langues où se trouve un tableau videNULL
?