Sfida:
Ingresso:
Un elenco ordinato di numeri interi positivi.
Produzione:
La quantità di numeri interi che si trovano sempre nello stesso indice esatto, dopo aver ruotato le cifre in ciascun numero intero il suo indice di volte verso sinistra e aver nuovamente ordinato l'elenco modificato.
Esempio:
Input: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Output (indicizzazione basata su 0): 6
Output (indicizzazione basata su 1):5
Perché?
Indicizzazione basata su 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
Indicizzazione basata su 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
Regole della sfida:
- Si garantisce che l'elenco di input contenga solo numeri interi positivi.
- L'elenco di input è garantito per essere ordinato dal più basso al più alto.
- L'elenco di input è garantito per contenere almeno due elementi.
- Come puoi vedere sopra, è consentita l'indicizzazione sia in base 0 che in base 1. Indica nella tua risposta quale delle due hai usato, poiché le uscite possono differire di conseguenza!
- Le
0
s iniziali dopo la rotazione vengono ignorate, come si può vedere nell'esempio in base 1 sopra, in cui l'intero102
diventa021
dopo la rotazione e viene quindi trattato come21
. - I numeri interi sono garantiti univoci nell'elenco di input e sono garantiti per rimanere unici dopo il completamento delle rotazioni.
- Si noti che osserviamo solo le posizioni degli interi ruotati in correlazione con le posizioni dell'input, non con i valori dell'elenco input. Per chiarire cosa intendo con questo: con la lista di input
[1234,3412]
e l'indicizzazione basata su 1, la lista diventa[2341,1234]
dopo aver ruotato ogni numero intero la sua quantità di indice di volte, e poi quando diventa ordinata diventa[1234,2341]
. Sebbene sia l'elenco di input originale sia l'elenco ruotato contengano il numero intero1234
nella posizione principale, non sono gli stessi! Il ruotato1234
era3412
prima. L'output 1 indicizzato per questo elenco di input è quindi0
, poiché i due numeri interi hanno scambiato le loro posizioni. - L'input è flessibile. Può essere un elenco / flusso / matrice di numeri interi / stringhe / array di cifre, ecc. Indica cosa hai usato se non prendi gli input come numeri interi.
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard con regole I / O predefinite , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice (ad es. TIO ).
- Inoltre, si consiglia vivamente di aggiungere una spiegazione per la risposta.
Casi 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
Sentiti libero di generare più casi di test casuali con (o trarre ispirazione da) questo programma 05AB1E non golfato , in cui l'input ha le dimensioni dell'elenco casuale (NOTA: l'output di questo generatore potrebbe non essere conforme alla regola "I numeri interi sono garantiti univoci in l'elenco di input e sono garantiti per rimanere unici dopo che le rotazioni sono state completate ", quindi tienilo a mente quando lo usi.)