Vous devez prendre deux listes d'entiers positifs en entrée, appelons-les n et m .
Vous pouvez supposer que:
- Tous les entiers de n font partie de m
- Tous les entiers de m sont uniques
- Les listes ne sont pas vides
Défi: Renvoyez les indices où vous trouvez les valeurs en n , en m .
Cela peut prêter à confusion, mais je pense que les cas de test rendront la tâche assez claire. Les exemples sont indexés 1, vous pouvez choisir l'index 0 si vous le souhaitez (veuillez préciser).
n = 5 3 4 1
m = 6 8 4 1 2 5 3 100
output: 6 7 3 4 // 5 is in the 6th position of m
// 3 is in the 7th position of m
// 4 is in the 3rd position of m
// 1 is in the 4th position of m
n = 5 3 4 9 7 5 7
m = 3 4 5 7 9
output: 3 1 2 5 4 3 4
n = 1 2 3 4 5 6
m = 1 2 3 4 5 6
output: 1 2 3 4 5 6
n = 16 27 18 12 6 26 11 24 26 20 2 8 7 12 5 22 22 2 17 4
m = 15 18 11 16 14 20 37 38 6 36 8 32 21 2 31 22 33 4 1 35 3 25 9 30 26 39 5 23 29 10 13 12 7 19 24 17 34 27 40 28
output: 4 38 2 32 9 25 3 35 25 6 14 11 33 32 27 16 16 14 36 18
n = 54
m = 54
output: 1
Les gagnants seront les solutions les plus courtes dans chaque langue.
C'est un très joli méta-post au fait!
Réponses:
V , 26 octets
Essayez-le en ligne!
C'est une solution très étrange et hacky, car V a peu ou pas de concept de nombres. L'entrée vient dans ce format:
Avec un espace de fin sur chaque ligne.
Hexdump:
Explication:
Si cela ne le rend pas plus clair, voici des exemples de tampon lors des différentes étapes de la boucle:
Étape 1 (
|
est le curseur)Étape 2:
Étape 3:
Étape 4:
Étape 5:
Étape 6:
Étape 7:
Retour à l'étape 1:
la source
Python 2 , 25 octets
Essayez-le en ligne!
Notez que cela utilise l'indexation 0.
la source
APL (Dyalog) , 1 octet
Essayez-le en ligne!
Remarque: la
⍳
fonction ne prend pas les scalaires comme argument de gauche, donc pour lui donner un argument de gauche comme54
, vous devez en faire un tableau en utilisant,
comme ça(,54)
.la source
Mathematica, 25 octets
Prend deux entrées
m
etn
et renvoie les indices basés sur 1 den
inm
.la source
Rétine ,
323130 octets1 octet enregistré grâce à Kritixi Lithos et 1 octet grâce à Martin Ender
Utilise l'indexation 0. L'entrée a un espace de fin sur chaque ligne.
Essayez-le en ligne!
Explication
Ici, nous remplaçons chaque numéro sur la première ligne par le nombre de chiffres avant le même numéro sur la deuxième ligne.
Ensuite, nous supprimons la deuxième ligne, ne laissant que la nouvelle première ligne comme sortie.
la source
Java ,
10481 octets1 octet grâce à Business cat.
Essayez-le en ligne!
la source
C #, 32 octets
Il s'agit du code en tant qu'expression lambda, il doit donc être valide.
La solution est avec un index basé sur 0. Je pense qu'il est assez simple de savoir comment cela fonctionne - il prend simplement les éléments de n et sélectionne les indices des éléments en m.
la source
Octave, 25 octets
Essayez-le en ligne!
la source
Haskell , 32 octets
Essayez-le en ligne! Un index.
Autres tentatives:
la source
k, 1
Il s'agit d'un opérateur intégré qui
k
utilise une indexation basée sur zéro.Exemple:
la source
05AB1E , 5 octets
Essayez-le en ligne!
la source
Gelée , 3 octets
Essayez-le en ligne!
Spécifications
la source
JavaScript (ES6), 28 octets
Prend les tableaux dans la syntaxe de curry
(n)(m)
. 0 indexé.la source
Perl 6 , 31 octets
Essayez-le
Étendu:
0 indexé
la source
Japt , 4 octets
Testez-le en ligne!
Explication
Il n'y a pas grand-chose à expliquer ici, mais cela montre une fonctionnalité intéressante de Japt. Normalement, vous passeriez une fonction à
m
, comme ceci:C'est fondamentalement
U.map(X => V.indexOf(X))
(leU
est implicite). Cependant, lorsque vous effectuez simplement une opération entre deux valeurs (b
ici, surV
etX
), vous pouvez simplement donner à l'opérateur et l'autre valeur et Japt en fera une fonction. Cela signifiemX{X+2}
peut être joué au golf pourm+2
.Cependant, cela ne fonctionne pas lorsque les valeurs sont dans le mauvais ordre (
mbV
serait l'abréviation demX{XbV}
). Pour contourner ce problème, vous pouvez ajouter un point d'exclamation à l'opérateur, qui indique à Japt de permuter les opérandes. Cela coûte un octet supplémentaire, mais c'est encore quelques octets de moins que l'alternative. Et maintenant, vous en savez un peu plus sur Japt.la source
MATL , 2 octets
Cela utilise l'indexation 1. Essayez-le en ligne!
Explication
La méta-fonction
&
indique que la fonction suivante utilisera une spécification d'entrée / sortie secondaire (spécifique à la fonction). Pour la fonctionm
(ismember
),&
spécifie que sa deuxième sortie sera produite. Il contient l'index de (la première occurrence de) chaque entrée de la première entrée dans la deuxième entrée.la source
Haskell, 34 octets
Exemple d'utilisation:
[5,3,4,9,7,5,7] # [3,4,5,7,9]
->[3,1,2,5,4,3,4]
L'intégré
elemIndex
est enData.List
et donc plus long que la version ci-dessus. La boucle externe passe à traversn
et la boucle interne à travers des paires de(i,e)
oùi
est l'indice dee
inm
. Gardezi
oùe
est égal à l'élément actuel den
.la source
R,
205 octets1 indexé;
match
est la fonction intégrée qui trouve les indices dans la deuxième entrée des éléments du premier, c'est-à-dire,match(n,m)
donne la réponse souhaitéemerci à @flodel d'avoir souligné que le retour d'une fonction est parfaitement acceptable comme réponse!
Essayez-le en ligne!
la source
match
(5 octets) à lui seul serait une solution acceptable.Pyth , 4 octets
Essayez-le en ligne!
Notez que cela utilise l'indexation 0.
la source
J , 2 octets
Ce n'est pas un programme complet, mais une fonction intégrée.
Utilisez-le comme tel:
Essayez-le en ligne!
Notez que cela utilise l'indexation 0.
la source
CJam , 4 octets
Bloc anonyme qui attend des arguments sur la pile et laisse le résultat sur la pile.
Utilise l'indexation 0.
Essayez-le en ligne!
la source
Haskell, 43 octets
la source
Clojure, 25 octets
0 indexé.
la source
Perl 5,
3834 octets4 octets économisés grâce à Dada
1 indexé. Prend les listes m et n comme une seule liste, comme
f(@m,@n)
. Ilx0
s'agit simplement d'empêcher la sortie de commencer par1,2,3,4,5
, etc.la source
sub{...}
vous pouvez donc économiser 2 octets. Vous pouvez également utiliserx0
au lieu de&&()
pour enregistrer deux octets supplémentaires.PHP, 56 octets
Versions en ligne
0 Indexation
sortie en tant que chaîne
PHP, 65 octets
Sortie sous forme de tableau
PHP, 78 octets
solution avec
array_map
pour les tableaux non uniques remplacer par
array_flip($_GET[1])[$v]
array_search($v,$_GET[1])
la source
Bash + coreutils, 51
Essayez-le en ligne .
Réponse précédente:
Essayez-le en ligne .
la source
Java 7, 80 octets
0 indexé
Explication:
Code de test:
Essayez-le ici.
Sortie:
la source