Desafio:
Entrada:
Uma lista classificada de números inteiros positivos.
Saída:
A quantidade de números inteiros que ainda estão exatamente no mesmo índice, depois de girar os dígitos em cada número inteiro, seu índice de vezes para a esquerda e classificar a lista modificada novamente.
Exemplo:
Entrada: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Saída (indexação baseada em 0): 6
Saída (indexação baseada em 1):5
Por quê?
Indexação baseada em 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
Indexação baseada em 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
Regras do desafio:
- A lista de entrada é garantida para conter apenas números inteiros positivos.
- A lista de entrada é garantida para ser classificada do menor para o maior.
- A lista de entrada é garantida para conter pelo menos dois itens.
- Como você pode ver acima, a indexação com base em 0 e em 1 é permitida. Indique em sua resposta qual dos dois você usou, pois os resultados podem diferir de acordo!
- Os
0
s iniciais após a rotação são ignorados, o que pode ser visto no exemplo com base em 1 acima, onde o número inteiro102
se torna021
após a rotação e é tratado como21
. - Os números inteiros são garantidos exclusivos na lista de entrada e permanecem únicos após a conclusão das rotações.
- Observe que apenas observamos as posições dos números inteiros rotacionados em correlação com as posições da entrada, e não com os valores da lista de entradas. Para esclarecer o que quero dizer com isso: com a lista de entrada
[1234,3412]
e a indexação baseada em 1, a lista torna-se[2341,1234]
após a rotação de cada número inteiro, a quantidade de vezes que é o índice e, em seguida, quando a classificação se torna[1234,2341]
. Embora a lista de entrada original e a lista girada contenham o número inteiro1234
na posição inicial, elas não são as mesmas! O rodado1234
foi3412
antes. A saída indexada em 1 para esta lista de entrada é0
, portanto , uma vez que os dois números inteiros trocaram suas posições. - A entrada é flexível. Pode ser uma lista / fluxo / array de números inteiros / strings / matrizes de dígitos, etc. Por favor, indique o que você usou se não aceitar as entradas como números inteiros.
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta com as regras de E / S padrão , para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código (ou seja, TIO ).
- Além disso, é altamente recomendável adicionar uma explicação para sua resposta.
Casos de teste:
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
Sinta-se à vontade para gerar mais casos de teste aleatórios com (ou inspirar-se) neste programa 05AB1E não usado , em que a entrada é do tamanho da lista aleatória (NOTA: a saída deste gerador pode não estar em conformidade com a regra "Os números inteiros são garantidos exclusivamente em a lista de entrada e é garantido que permaneça único após a conclusão das rotações ", lembre-se disso ao usá-lo.)