Inspiriert von dieser Stapelüberlauf-Frage: Sortieren einer Liste: Zahlen in aufsteigender Reihenfolge, Buchstaben in absteigender Reihenfolge . Ihre Aufgabe ist es, das folgende Problem zu lösen, und da dies Codegolf ist , sollten Sie dies in so wenigen Bytes wie möglich tun.
Sie sollten eine Liste von Objekten als Eingabe mit Buchstaben nehmen (jede angemessene Form: string
, char
usw.) und Zahlen. Sie sollten dann die Zahlen in aufsteigender Reihenfolge und die Buchstaben in absteigender Reihenfolge sortieren. Sie sollten jedoch Buchstaben in Buchstabenpositionen und Zahlen in Zahlenpositionen belassen. Zum Beispiel, wenn die Liste ist:
[L, D, L, L, D, L]
Die Ausgabeliste sollte folgende Form haben:
[L, D, L, L, D, L]
Durcharbeiten
Eingang: ['a', 2, 'b', 1, 'c', 3]
- Sortieren Sie die Nummern in aufsteigender Reihenfolge:
[1, 2, 3]
- Sortieren Sie die Buchstaben in absteigender Reihenfolge:
['c', 'b', 'a']
- Schließe dich ihnen wieder an, aber behalte die Reihenfolge bei:
['c', 1', 'b', 2, 'a', 3]
Regeln
- Die Liste enthält nur Buchstaben und Ziffern.
- Die Liste ist möglicherweise leer.
- Die Liste darf nur Buchstaben oder nur Ziffern enthalten.
- Wenn Ihre Sprache keine gemischten Arrays unterstützt, können Sie anstelle von Zahlen auch Ziffern verwenden. Beachten Sie, dass Sie gemischte Typen verwenden müssen, wenn Ihre Sprache dies unterstützt.
- Buchstaben werden nur
[a-z]
oder sein[A-Z]
, Sie können wählen, welche. - Buchstaben werden als
a
niedrigste undz
höchste Buchstaben sortierta = 1, z = 26
. - Standardlücken sind verboten.
- I / O kann auf jede Standardmethode ausgeführt werden, einschließlich als Zeichenfolge.
Testfälle
[5, 'a', 'x', 3, 6, 'b'] -> [3, 'x', 'b', 5, 6, 'a']
[ 3, 2, 1] -> [ 1, 2, 3 ]
[ 'a', 'b', 'c' ] -> [ 'c', 'b', 'a' ]
[] -> []
[ 2, 3, 2, 1 ] -> [1, 2, 2, 3]
Da es sich um Code-Golf die kürzeste Antwort in Bytes gewinnt!