Максимальное число составленное из чисел массива
Дан массив неотрицательных целых чисел 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.