Учитывая список строк, сортируйте список как числа, не зная, какая база используется. Значения цифр также неизвестны (возможно, что '1'> '2').
Поскольку значения цифр неизвестны, используйте закон Бенфорда (или закон первой цифры), чтобы определить относительное значение цифр. Для распределений, которые следуют закону Бенфорда, цифры с более низкими значениями появляются в качестве лидирующей цифры чаще, чем цифры с более высокими значениями.
правила
- Это код-гольф
- Список строк может быть получен из источника по вашему выбору (стандартный, переменная, файл, пользователь и т. Д.)
- Строки ограничены символами ASCII.
- Символы, которые не появляются в качестве ведущих символов, имеют самые высокие значения. (предположим, что нулей нет, и сортируйте строго по ведущей частоте.)
- Символы, которые появляются в качестве начальных цифр столько раз, сколько другие символы, имеют одинаковый вес.
пример
несортированный
['c','ca','ac','cc','a','ccc','cx','cz','cy']
Сортировка
['c','a','cc','ca','cz','cy','cx','ac','ccc']
Примечание: В данном примере 'cz', 'cy'и 'cx'может появиться как 5 - й, 6 - й и 7 - элементы в любом порядке , так как цифры 'x', 'y'и 'z'имеют одинаковый вес.