TUZ_3-21 Сортировка чисел по количеству цифр
3.21 Сортировка чисел по количеству цифр
Стандартная операция сравнения чисел говорит нам, что число 101 больше числа 9.
Однако в контексте сортировки по значениям цифр число 9 больше, чем 101.
Целью этой задачи является сортировка массива чисел по количеству составляющих их цифр.
Например, рассмотрим массив array = [81181972, 8111972], и пусть a = 81181972 и b = 8111972.
Сравнение начинается с наибольшей цифры, в данном случае это 9.
Оба числа имеют по одной цифре 9, поэтому сравнивается следующая по величине цифра – цифра 8.
В a две восьмерки, а в b – одна, поэтому считается, что a больше.
В общем случае сравнение выполняется следующим образом: если в a и b имеется одинаковое количество цифр
с одним и тем же значением, то проверяется следующая цифра, меньшая по величине.
Так продолжается до тех пор, пока не будет найдено отличие или пока не будут исчерпаны все цифры в числах.
Ваша задача: написать функцию, которая принимает массив положительных целых чисел и возвращает массив,
отсортированный по количеству цифр.
В табл. 3.21 показаны ожидаемые результаты для некоторых входных данных.
Таблица 3.21. Некоторые ожидаемые результаты для задачи сортировки чисел по количеству цифр |
Array |
Ожидаемый результат |
[81181972, 9, 123198776, 23, 456, 1] |
[1, 23, 456, 9, 123198776, 81181972] |
[1, 2, 3, 11, 9, 77, 66, 87, 111] |
[1, 11, 111, 2, 3, 66, 77, 87, 9] |
[39, 456, 0, 7, 3, 599] |
[0, 3, 456, 7, 39, 599] |
[] |
[] |