Todos conocemos diferentes algoritmos de clasificación sofisticados, pero ninguno de estos nos da números de una manera fácil de pronunciar. Para remediar esto, propongo usar PronunciaciónSort ™, la forma más natural de ordenar listas de números.
Pronunciación
Las reglas oficiales para pronunciar números (en este desafío) es que los dígitos se pronuncian uno por uno, y la cadena resultante se ordena en orden lexicográfico. Como ejemplo, esto significa que el número 845
se pronuncia "eight four five"
y debe clasificarse en consecuencia.
Números negativos
Los números negativos se pronuncian anteponiendo la palabra "minus"
. Por lo tanto, -23
se pronuncia como "minus two three"
. Tenga en cuenta que esto hace que los números negativos terminen en el medio de la salida, justo entre los números que comienzan con 4
(cuatro) y 9
(nueve).
Como guía, el orden oficial de las palabras para PronunciaciónSort ™ es:
- ocho
- cinco
- cuatro
- menos
- nueve
- uno
- Siete
- seis
- Tres
- dos
- cero
Es decir,
8, 5, 4, -, 9, 1, 7, 6, 3, 2, 0
Entrada
Una lista de enteros en el rango , que contiene como máximo 100 elementos. La entrada como una lista de cadenas no está permitida. Si su idioma no admite la entrada como lista, es permisible dar entrada como enteros separados.
La entrada no contendrá ningún número inválido, o cualquier número que comience con un 0 (excepto el número 0 en sí). La entrada generalmente no se ordenará, se puede dar en cualquier orden.
Salida
Los mismos enteros, en el orden de PronunciaciónSort ™. Tenga en cuenta que los números solo deben convertirse a sus pronunciaciones para obtener la clasificación, la salida no debe contener cadenas.
Ejemplos
Para los ejemplos, el paso intermedio (entre paréntesis) solo sirve como guía y no es parte de la salida.
[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]
También hay un script para verificar sus resultados .