Dada una cadena de dígitos o un entero como entrada, tendrá que indexarlo.
Así es como se modifica la entrada. Usaremos 30043376111
como ejemplo:
Primero, encuentre la suma de los índices de cada aparición de los dígitos respectivos:
0: 1 + 2 = 3
1: 8 + 9 + 10 = 27
3: 0 + 4 + 5 = 9
4: 3
6: 7
7: 6
Luego, construya un nuevo entero o cadena donde los dígitos anteriores vayan en el orden de las sumas de sus índices. En el caso de que varios dígitos produzcan la misma suma, el dígito más pequeño precede al más grande:
047631
Finalmente, elimine los ceros a la izquierda y devuelva o imprima el resultado:
47631
Debe escribir un programa o función que devuelva o imprima la entrada indexada.
Este es el código de golf , por lo que gana el código más corto en bytes.
Se pueden agregar más casos de prueba si se solicita.
Respuestas:
k, 7 bytes
respuesta en línea
La yuxtaposición de funciones es composición, por lo que no se requiere ningún parámetro explícito o entrada.
fuente
Haskell, 69 bytes
Toma una cadena, devuelve un número. Ejemplo de uso:
f "30043376111"
->47631
. Pruébalo en línea!Bastante sencillo: primero clasifique los dígitos de la cadena de entrada en la suma de sus índices y luego por el dígito en sí (-> pares de (suma ..., d)), elimine los duplicados y conviértalos en un número para eliminar los iniciales
0
. Se0+
necesita para obtener los tipos correctos.fuente
Apilado , 59 bytes
Pruébalo en línea!
Esto toma una cadena de caracteres (como
$'1231231'
) como entrada desde la parte superior de la pila y deja una cadena en la pila.Explicación
Ahora nos quedan pares de (chr, suma de índices).
fuente
05AB1E ,
2928 bytes-1 gracias a Riley
Pruébalo en línea!
fuente
TFN
por9Ývy
JavaScript (ES6), 98 bytes
Toma una cadena
n
, luego la convierte en un conjunto y luego en una matriz de dígitos distintos. Ordena estos dígitos en orden numérico, luego los ordena de nuevo según sumas de índices. Concatena la matriz ordenada en una cadena y finalmente la convierte en un número para eliminar los ceros a la izquierda.fuente
.sort()
, una entrada de 1332 produce 132 en lugar de 123.PowerShell , 88 bytes
Pruébalo en línea!
Establece una tabla hash vacía
$a
, luego convierte la entrada$args
como unachar
matriz y recorre cada elemento|%{...}
. Establecemos el valor en "el elemento actual"$a
para que se incremente$i++
, para contar los índices de entrada. Por ejemplo, para la entrada300433766111
, se$a[3]
obtiene el primer bucle+=0
; el siguiente ciclo,$a[0]
consigue+=1
; etc.A continuación, necesitamos
Sort
nuestra tabla hash. Desafortunadamente, debido a una peculiaridad interna del lenguaje, esto significa que debemos hacerlo$a.GetEnumerator()
antes de que podamos hacer la clasificación real. Ordenamos porvalue
, luego porname
, para satisfacer el requisito de que los dígitos más pequeños se ordenen primero. Sacamos los.Name
s de los mismos (en orden ordenado),-join
los juntamos en una cadena y los convertimos como int+
para eliminar los ceros iniciales. Eso queda en la tubería y la salida es implícita.fuente
Jalea , 10 bytes
Pruébalo en línea!
Toma y devuelve un entero.
¿Cómo?
fuente
PHP, 103 bytes
fuente
Python 2,
10292 bytes¡Gracias a Ben Frankel por guardar 10 bytes!
Pruébalo en línea!
Toma la entrada como una cadena y genera un número entero. Utiliza un diccionario para almacenar la suma de índices, luego lo ordena por valor. Se convierte en un entero para quitar los ceros iniciales porque
int
es más corto que.lsplit('0')
.fuente
a[j]=a.get(j,0)+i
ahorra 10 bytes.Python 3.5,
8685 bytesGracias @Ben Frankel por guardar un byte:
Código antiguo
Función anónima que toma una cadena de dígitos y devuelve un entero
fuente
sum(i*(c==d)for
ahorra 1 byte.Pip , 18 bytes
Toma el número como un argumento de línea de comandos. Pruébalo en línea!
Explicación
fuente
C #, 245 bytes
No estoy contento con cuánto tiempo terminó siendo y probablemente puede ser más corto, pero esto es con lo que terminé.
fuente
Perl 6 ,
65 6152 bytesIntentalo
Intentalo
Intentalo
Expandido
fuente
Scala,
123104bytesEjemplo (usando Scala REPL):
Bastante sencillo, usando tuplas como predicado de clasificación para la clasificación secundaria.
fuente
Pyth, 9 bytes
Pruébalo en línea
Toma una cadena de dígitos como entrada.
fuente