このStack Overflowの質問に触発された:リストの並べ替え:数字は昇順、文字は降順。あなたの仕事は次の問題を解決することです。これはcode-golfなので、できる限り少ないバイトで行う必要があります。
:あなたは、文字(任意の合理的な形含む入力として、オブジェクトのリストを取る必要がありstring
、char
および数字など)。次に、数字を昇順で、文字を降順で並べ替える必要があります。ただし、文字は文字の位置に、数字は数字の位置に保持する必要があります。たとえば、リストが次の場合:
[L, D, L, L, D, L]
出力リストの形式は次のとおりです。
[L, D, L, L, D, L]
乗り越えます
入力: ['a', 2, 'b', 1, 'c', 3]
- 番号を昇順で並べ替えます。
[1, 2, 3]
- 文字を降順に並べ替えます:
['c', 'b', 'a']
- それらを元に戻しますが、順序は同じままにします。
['c', 1', 'b', 2, 'a', 3]
ルール
- リストには文字と数字のみが含まれます。
- リストは空かもしれません。
- リストには、文字のみまたは数字のみを含めることができます。
- 言語が混合型配列をサポートしていない場合、数字の代わりに数字を使用できます。言語がこれをサポートしている場合は、混合型を使用する必要があることに注意してください。
- 文字は
[a-z]
またはのみになり[A-Z]
、どちらを選択してもかまいません。 - 文字は
a
、最も低いもの、z
つまり最も高いものとしてソートされa = 1, z = 26
ます。 - 標準的な抜け穴は禁止されています。
- I / Oは、文字列としてなど、標準的な手段によるものです。
テストケース
[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]
これはコードゴルフであるため、バイト単位の最短回答が勝ちです!