Nous connaissons tous différents algorithmes de tri fantaisistes, mais aucun d'eux ne nous donne de chiffres d'une manière facile à prononcer. Pour y remédier, je propose d'utiliser prononciationSort ™, le moyen le plus naturel de trier les listes de numéros.
Prononciation
Les règles officielles pour prononcer les nombres (dans ce défi) sont que les chiffres sont prononcés un par un, et la chaîne résultante est triée dans l'ordre lexicographique. Par exemple, cela signifie que le nombre 845
est prononcé "eight four five"
et doit être trié en conséquence.
Nombres négatifs
Les nombres négatifs sont prononcés en ajoutant le mot au début "minus"
. Ainsi, -23
est prononcé comme "minus two three"
. Notez que cela fait que les nombres négatifs se retrouvent au milieu de la sortie, juste entre les nombres commençant par 4
(quatre) et 9
(neuf).
À titre indicatif, l'ordre officiel des mots pour prononciationSort ™ est:
- huit
- cinq
- quatre
- moins
- neuf
- une
- Sept
- six
- Trois
- deux
- zéro
C'est,
8, 5, 4, -, 9, 1, 7, 6, 3, 2, 0
Contribution
Une liste d'entiers dans la plage , contenant au plus 100 éléments. La saisie sous forme de liste de chaînes n'est pas autorisée. Si votre langue ne prend pas en charge la saisie sous forme de liste, il est autorisé de fournir la saisie sous forme d'entiers séparés.
L'entrée ne contiendra aucun numéro non valide, ni aucun numéro commençant par un 0 (à l'exception du numéro 0 lui-même). L'entrée ne sera généralement pas triée, elle peut être donnée dans n'importe quel ordre.
Sortie
Les mêmes entiers, dans l'ordre de prononciationSort ™. Notez que les nombres ne doivent être convertis qu'en leurs prononciations pour obtenir le tri, la sortie ne doit contenir aucune chaîne.
Exemples
Pour les exemples, l'étape intermédiaire (entourée de parenthèses) sert uniquement de guide et ne fait pas partie de la sortie.
[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]
Il existe également un script pour vérifier vos résultats .