Desafío:
Entrada:
Una lista ordenada de enteros positivos.
Salida:
La cantidad de enteros que todavía están exactamente en el mismo índice, después de rotar los dígitos en cada número entero su cantidad de índice hacia la izquierda y ordenar la lista modificada nuevamente.
Ejemplo:
Entrada: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Salida (indexación basada en 0): 6
Salida (indexación basada en 1):5
¿Por qué?
Indexación basada en 0:
After rotating each: [8,94,73,102,592,276,8227,3338,9217,63784,89487,7887471]
Sorted again: [8,73,94,102,276,592,3338,8227,9217,63784,89487,7887471]
Input indices: 0 1 2 3 4 5 6 7 8 9 10 11
Original input-list: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Modified list: [8,73,94,102,276,592,3338,8227,9217,63784,89487,7887471]
Modified indices: 0 2 1 3 5 4 7 6 8 9 10 11
Equal indices: ^ ^ ^ ^ ^ ^
So the output is: 6
Indexación basada en 1:
After rotating each: [8,49,37,021,925,762,2278,3383,2179,37846,94878,8874717]
Sorted again: [8,(0)21,37,49,762,925,2179,2278,3383,37846,94878,8874717]
Input indices: 1 2 3 4 5 6 7 8 9 10 11 12
Original input-list: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Modified list: [8,21,37,49,762,925,2179,2278,3383,37846,94878,8874717]
Modified indices: 1 4 3 2 6 5 9 7 8 10 11 12
Equal indices: ^ ^ ^ ^ ^
So the output is: 5
Reglas de desafío:
- Se garantiza que la lista de entrada solo contiene enteros positivos.
- Se garantiza que la lista de entrada se ordenará de menor a mayor.
- Se garantiza que la lista de entrada contiene al menos dos elementos.
- Como puede ver arriba, se permite la indexación basada en 0 y en 1. Indique en su respuesta cuál de los dos ha utilizado, ya que los resultados pueden diferir en consecuencia.
- Los
0
s iniciales después de rotar se ignoran, lo que se puede ver con el ejemplo basado en 1 anterior, donde el entero se102
convierte021
después de rotar, y luego se trata como21
. - Los enteros se garantizan únicos en la lista de entrada, y se garantiza que seguirán siendo únicos después de que se completen las rotaciones.
- Tenga en cuenta que solo miramos las posiciones de los enteros rotados en correlación con las posiciones de la entrada, no con los valores de la lista de entrada. Para aclarar lo que quiero decir con esto: con la lista de entrada
[1234,3412]
y la indexación basada en 1, la lista se convierte[2341,1234]
después de rotar cada número entero en su cantidad de índice de veces, y luego cuando se ordena[1234,2341]
. Aunque tanto la lista de entrada original como la lista rotada contienen el número entero1234
en la posición inicial , ¡no son lo mismo! El rotado1234
era3412
antes. La salida indexada en 1 para esta lista de entrada es0
, por lo tanto , ya que los dos enteros han intercambiado sus posiciones. - La entrada es flexible. Puede ser una lista / secuencia / matriz de enteros / cadenas / matrices de dígitos, etc. Indique lo que ha utilizado si no toma las entradas como enteros.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Las reglas estándar se aplican a su respuesta con las reglas de E / S predeterminadas , por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código (es decir, TIO ).
- Además, se recomienda agregar una explicación para su respuesta.
Casos de prueba:
Input: [8, 49, 73, 102, 259, 762, 2782, 3383, 9217, 37846, 89487, 7471788]
0-based output: 6
1-based output: 5
Input: [1234, 3412]
0-based output: 2
1-based output: 0
Input: [2349, 2820, 17499, 21244, 29842, 31857, 46645, 56675, 61643, 61787]
0-based output: 3
1-based output: 0
Input: [4976, 11087, 18732, 22643, 52735]
0-based output: 2
1-based output: 3
Input: [4414, 5866, 7175, 8929, 14048, 16228, 16809, 19166, 24408, 25220, 29333, 44274, 47275, 47518, 53355]
0-based output: 4
1-based output: 4
Input: [11205, 16820, 63494]
0-based output: 1
1-based output: 3
Siéntase libre de generar más casos de prueba aleatorios con (o inspirarse en) este programa 05AB1E sin golf , donde la entrada es del tamaño de la lista aleatoria (NOTA: la salida de este generador podría no cumplir con la regla "Los enteros están garantizados únicos en la lista de entrada, y se garantiza que seguirán siendo únicos después de que se completen las rotaciones ", así que tenlo en cuenta al usarlo).