Wir alle kennen verschiedene ausgefallene Sortieralgorithmen, aber keine davon gibt uns Zahlen auf eine Weise, die leicht auszusprechen ist. Um dem abzuhelfen, schlage ich die Verwendung von AusspracheSort ™ vor, der natürlichsten Methode zum Sortieren von Nummernlisten.
Aussprache
Die offiziellen Regeln zum Aussprechen von Zahlen (in dieser Herausforderung) lauten, dass die Ziffern einzeln ausgesprochen werden und die resultierende Zeichenfolge in lexikografischer Reihenfolge sortiert wird. Dies bedeutet beispielsweise, dass die Nummer 845
ausgesprochen "eight four five"
wird und entsprechend sortiert werden sollte.
Negative Zahlen
Negative Zahlen werden durch Voranstellen des Wortes ausgesprochen "minus"
. So -23
wird ausgesprochen als "minus two three"
. Beachten Sie, dass negative Zahlen in der Mitte der Ausgabe angezeigt werden, direkt zwischen den Zahlen, die mit 4
(vier) und 9
(neun) beginnen.
Die offizielle Reihenfolge der Wörter für AusspracheSort ™ lautet:
- acht
- fünf
- vier
- Minus
- neun
- eins
- Sieben
- sechs
- drei
- zwei
- Null
Das ist,
8, 5, 4, -, 9, 1, 7, 6, 3, 2, 0
Eingang
Eine Liste von Ganzzahlen im Bereich , die höchstens 100 Elemente enthält. Die Eingabe als Liste von Zeichenfolgen ist nicht zulässig. Wenn Ihre Sprache die Eingabe als Liste nicht unterstützt, ist es zulässig, die Eingabe als separate Ganzzahlen vorzunehmen.
Die Eingabe enthält keine ungültigen Zahlen oder Zahlen, die mit einer 0 beginnen (mit Ausnahme der Zahl 0 selbst). Die Eingabe wird in der Regel nicht sortiert, sondern kann in beliebiger Reihenfolge erfolgen.
Ausgabe
Dieselben ganzen Zahlen in der Reihenfolge von AusspracheSort ™. Beachten Sie, dass die Zahlen nur in ihre Aussprachen konvertiert werden sollten, um die Sortierung zu erhalten. Die Ausgabe sollte keine Zeichenfolgen enthalten.
Beispiele
In den Beispielen dient der in Klammern gesetzte mittlere Schritt nur als Richtlinie und ist nicht Teil der Ausgabe.
[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]
Es gibt auch ein Skript zur Überprüfung Ihrer Ergebnisse .