Debe tomar dos listas de enteros positivos como entrada, llamemos a estos n y m .
Puede suponer que:
- Todos los enteros en n son parte de m
- Todos los enteros en m son únicos
- Las listas no están vacías.
Reto: Devuelve los índices de dónde encuentras los valores en n , en m .
Eso puede ser confuso, pero creo que los casos de prueba aclararán la tarea. Los ejemplos están indexados en 1, puede elegir indexados en 0 si lo desea (especifique).
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
Los ganadores serán las soluciones más cortas en cada idioma.
Respuestas:
V , 26 bytes
Pruébalo en línea!
Esta es una solución muy extraña y hacky, porque V tiene poco o ningún concepto de números. La entrada viene en este formato:
Con un espacio final en cada línea.
Hexdump:
Explicación:
Si esto no lo aclara, aquí hay ejemplos del búfer durante las distintas etapas por las que pasa el ciclo:
Etapa 1 (
|
es el cursor)Etapa 2:
Etapa 3:
Etapa 4:
Etapa 5:
Etapa 6:
Etapa 7:
De vuelta a la etapa 1:
fuente
Python 2 , 25 bytes
Pruébalo en línea!
Tenga en cuenta que esto usa indexación 0.
fuente
APL (Dyalog) , 1 byte
Pruébalo en línea!
Nota: la
⍳
función no toma escalares como argumento izquierdo, por lo que para darle un argumento izquierdo como54
, debes convertirlo en una matriz usando,
así(,54)
.fuente
Mathematica, 25 bytes
Toma dos entradas
m
yn
, y devuelve los índices basados en 1 den
inm
.fuente
Retina ,
323130 bytes1 byte guardado gracias a Kritixi Lithos y 1 byte gracias a Martin Ender
Utiliza indexación 0. La entrada tiene un espacio final en cada línea.
Pruébalo en línea!
Explicación
Aquí reemplazamos cada número en la primera línea por el número de números antes del mismo número en la segunda línea.
Luego, eliminamos la segunda línea, dejando solo la nueva primera línea como salida.
fuente
Java ,
10481 bytes1 byte gracias a Business cat.
Pruébalo en línea!
fuente
C #, 32 bytes
Este es el código como una expresión lambda, por lo que debería ser válido.
La solución es con un índice basado en 0. Creo que es bastante sencillo cómo funciona: simplemente toma los elementos de n y selecciona los índices de los elementos en m.
fuente
Octava, 25 bytes
Pruébalo en línea!
fuente
Haskell , 32 bytes
Pruébalo en línea! Un índice.
Otros intentos
fuente
k, 1
Este es un operador incorporado
k
y utiliza indexación basada en cero.Ejemplo:
fuente
05AB1E , 5 bytes
Pruébalo en línea!
fuente
Jalea , 3 bytes
Pruébalo en línea!
Especificaciones
fuente
JavaScript (ES6), 28 bytes
Toma las matrices en sintaxis curry
(n)(m)
. 0 indexado.fuente
Perl 6 , 31 bytes
Intentalo
Expandido:
0 indexado
fuente
Japt , 4 bytes
¡Pruébelo en línea!
Explicación
No hay mucho que explicar aquí, pero muestra una característica interesante de Japt. Normalmente, pasaría una función a
m
, así:Esto es básicamente
U.map(X => V.indexOf(X))
(elU
es implícito). Sin embargo, cuando solo está realizando una operación entre dos valores (b
aquí, encendidoV
yX
), puede dar al operador y el otro valor y Japt hará una función a partir de él. Esto significa quemX{X+2}
se puede jugar golfm+2
.Sin embargo, esto no funciona cuando los valores están en el orden incorrecto (
mbV
sería la abreviatura demX{XbV}
). Para evitar esto, puede anteponer un signo de exclamación al operador, que le dice a Japt que cambie los operandos. Esto cuesta un byte adicional, pero sigue siendo un par de bytes más corto que la alternativa. Y ahora sabes un poco más sobre Japt.fuente
MATL , 2 bytes
Esto usa 1-indexación. Pruébalo en línea!
Explicación
La metafunción
&
indica que la siguiente función utilizará una especificación de entrada / salida secundaria (específica de la función). Para la funciónm
(ismember
),&
especifica que se producirá su segunda salida. Contiene el índice de (la primera aparición de) cada entrada de la primera entrada en la segunda entrada.fuente
Haskell, 34 bytes
Ejemplo de uso:
[5,3,4,9,7,5,7] # [3,4,5,7,9]
->[3,1,2,5,4,3,4]
El incorporado
elemIndex
está dentroData.List
y, por lo tanto, es más largo que la versión anterior. El bucle externo atraviesan
y el bucle interno atraviesa pares de(i,e)
dondei
está el índice dee
inm
. Manteneri
dondee
es igual al elemento actual den
.fuente
R,
205 bytes1 indexado;
match
es la función incorporada que encuentra los índices en la segunda entrada de los elementos de la primera, es decir,match(n,m)
da la respuesta deseada¡Gracias a @flodel por señalar que devolver una función es perfectamente aceptable como respuesta!
Pruébalo en línea!
fuente
match
(5 bytes) solo sería una solución aceptable.Pyth , 4 bytes
Pruébalo en línea!
Tenga en cuenta que esto usa indexación 0.
fuente
J , 2 bytes
Este no es un programa completo, sino una función incorporada.
Úselo como tal:
Pruébalo en línea!
Tenga en cuenta que esto usa indexación 0.
fuente
CJam , 4 bytes
Bloque anónimo que espera argumentos en la pila y deja el resultado en la pila.
Utiliza indexación 0.
Pruébalo en línea!
fuente
Haskell, 43 bytes
fuente
Clojure, 25 bytes
0 indexado.
fuente
Perl 5,
3834 bytes4 bytes guardados gracias a Dada
1 indexado. Toma las listas de m y n como una única lista, como
f(@m,@n)
. Estox0
es solo para evitar que la salida comience1,2,3,4,5
, etc.fuente
sub{...}
puede ahorrarle 2 bytes. Además, puede usar enx0
lugar de&&()
guardar dos bytes más.PHP, 56 bytes
Versiones en linea
0 indexación
salida como cadena
PHP, 65 bytes
Salida como matriz
PHP, 78 bytes
solución alternativa con
array_map
para matrices no únicas, reemplace con
array_flip($_GET[1])[$v]
array_search($v,$_GET[1])
fuente
Bash + coreutils, 51
Pruébalo en línea .
Respuesta anterior:
Pruébalo en línea .
fuente
Java 7, 80 bytes
0 indexado
Explicación:
Código de prueba:
Pruébalo aquí
Salida:
fuente