Défi:
Contribution:
Une liste triée d'entiers positifs.
Production:
La quantité d'entiers qui sont toujours au même index exact, après avoir fait tourner les chiffres de chaque entier sa quantité d'index de fois vers la gauche et trié à nouveau la liste modifiée.
Exemple:
Entrée: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Sortie (indexation 0): 6
Sortie (indexation 1):5
Pourquoi?
Indexation basée sur 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
Indexation basée sur 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
Règles du défi:
- La liste d'entrées est garantie de ne contenir que des entiers positifs.
- La liste d'entrées est garantie d'être triée du plus bas au plus élevé.
- La liste d'entrée est garantie pour contenir au moins deux éléments.
- Comme vous pouvez le voir ci-dessus, l'indexation basée sur 0 et basée sur 1 est autorisée. Veuillez indiquer dans votre réponse laquelle des deux vous avez utilisée, car les sorties peuvent différer en conséquence!
- Les
0
s après rotation sont ignorés, ce qui peut être vu avec l'exemple basé sur 1 ci-dessus, où l'entier102
devient021
après rotation, et est ensuite traité comme21
. - Les nombres entiers sont garantis uniques dans la liste d'entrée et sont garantis rester uniques une fois les rotations terminées.
- Notez que nous ne regardons que les positions des entiers tournés en corrélation avec les positions de l'entrée, pas avec les valeurs de la liste d'entrée. Pour clarifier ce que je veux dire par ceci: avec la liste d'entrée
[1234,3412]
et l'indexation basée sur 1, la liste devient[2341,1234]
après avoir fait tourner chaque entier son nombre d'indices, puis lorsqu'elle est triée[1234,2341]
. Bien que la liste d'entrée d'origine et la liste pivotée contiennent l'entier1234
à la position de tête, elles ne sont pas les mêmes! Le tourné1234
était3412
avant. La sortie indexée 1 pour cette entrée-liste est donc0
, puisque les deux entiers ont échangé leurs positions. - L'entrée est flexible. Il peut s'agir d'une liste / d'un flux / d'un tableau d'entiers / de chaînes / de tableaux de chiffres, etc. Veuillez indiquer ce que vous avez utilisé si vous ne prenez pas les entrées comme des entiers.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse avec des règles d'E / S par défaut , vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code (par exemple TIO ).
- De plus, l'ajout d'une explication à votre réponse est fortement recommandé.
Cas de test:
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
N'hésitez pas à générer plus de cas de test aléatoires avec (ou à vous inspirer) de ce programme 05AB1E non golfé , où l'entrée est la taille de la liste aléatoire (REMARQUE: la sortie de ce générateur peut ne pas respecter la règle "Les entiers sont garantis uniques dans la liste d'entrées, et sont garantis pour rester uniques une fois les rotations terminées ", donc gardez cela à l'esprit lorsque vous l'utilisez.)