Максимальное число составленное из чисел массива

Дан массив неотрицательных целых чисел nums. Расположите их в таком порядке, чтобы вместе они образовали максимально возможное число. Замечание: Результат может быть очень большим числом, поэтому представьте его как string, а не integer. Пример 2.1:

Ввод: nums = [10,2]
Вывод: ”210”
Пример 2.2:
Ввод: nums = [3,30,34,5,9]
Вывод: ”9534330”
Пример 2.3:
Ввод: nums = [1]
Вывод: ”1”
Пример 2.4:
Ввод: nums = [10]
Вывод: ”10”
def get_biggest_number(nums):
    # Преобразуем числа в строки и сортируем их в обратном лексикографическом порядке
    nums_str = sorted(map(str, nums), reverse=True)
    # Объединяем отсортированные числа в одну строку
    result = ''.join(nums_str)
    return result

# Примеры использования
print(get_biggest_number([10, 2]))  # Вывод: "210"
print(get_biggest_number([3, 30, 34, 5, 9]))  # Вывод: "9534330"
print(get_biggest_number([1]))  # Вывод: "1"
print(largest_number([10]))  # Вывод: "10"

Выводит: 210 9534303 1 10


Ответы (1 шт):

Автор решения: MBo

Лексикографическая сортировка не спасает, если одно число является префиксом другого. Попробуйте использовать такую функцию сравнения - для чисел A и B сравните AB с BA.

→ Ссылка