Conosciamo tutti diversi algoritmi di ordinamento, ma nessuno di questi ci fornisce numeri in un modo facile da pronunciare. Per ovviare a questo, propongo di usare PronunciaSort ™, il modo più naturale di ordinare elenchi di numeri.
Pronuncia
Le regole ufficiali per pronunciare i numeri (in questa sfida) è che le cifre sono pronunciate una per una e la stringa risultante è ordinata in ordine lessicografico. Ad esempio, ciò significa che il numero 845
è pronunciato "eight four five"
e deve essere ordinato di conseguenza.
Numeri negativi
I numeri negativi vengono pronunciati anteponendo la parola "minus"
. Pertanto, -23
si pronuncia come "minus two three"
. Notare che ciò causa la fine di numeri negativi nel mezzo dell'output, tra i numeri che iniziano con 4
(quattro) e 9
(nove).
Come guida, l'ordine ufficiale delle parole per PronoSort ™ è:
- otto
- cinque
- quattro
- meno
- nove
- uno
- Sette
- sei
- tre
- Due
- zero
Questo è,
8, 5, 4, -, 9, 1, 7, 6, 3, 2, 0
Ingresso
Un elenco di numeri interi nell'intervallo , contenente al massimo 100 elementi. L'immissione come elenco di stringhe non è consentita. Se la tua lingua non supporta input come elenco, è consentito fornire input come numeri interi separati.
L'input non conterrà numeri non validi o numeri che iniziano con uno 0 (tranne il numero 0 stesso). L'input generalmente non sarà ordinato, può essere dato in qualsiasi ordine.
Produzione
Gli stessi numeri interi, nell'ordine di PronoSort ™. Si noti che i numeri devono essere convertiti solo nelle loro pronunce per ottenere l'ordinamento, l'output non deve contenere stringhe.
Esempi
Per gli esempi, il passaggio centrale (racchiuso tra parentesi) serve solo da guida e non fa parte dell'output.
[1, 2, 3] -> (['one', 'two', 'three']) -> [1, 3, 2]
[-1, 0, 1, 2] -> (['minus one', 'zero', 'one', 'two']) -> [-1, 1, 2, 0]
[-100, 45, 96] -> (['minus one zero zero', 'four five', 'nine six']) -> [45, -100, 96]
[11, 12, 13, 134, 135] -> (['one one', 'one two', 'one three', 'one three four', 'one three five']) -> [11, 13, 135, 134, 12]
C'è anche uno script per la verifica dei risultati .