Большое число

Вечером ребята решили поиграть в игру «Большое число».

Даны числа. Нужно определить, какое самое большое число можно из них составить.

Формат ввода

В первой строке записано n — количество чисел. Оно не превосходит 100.

Во второй строке через пробел записаны n неотрицательных чисел, каждое из которых не превосходит 1000.

Формат вывода

Нужно вывести самое большое число, которое можно составить из данных чисел.

def bubble_sort(number, source_array):
    for i in range(number - 1):
        for j in range(0, number-i-1):
            var1 = source_array[j] + source_array[j+1]
            var2 = source_array[j + 1] + source_array[j]
            if var1 < var2:
                source_array[j], source_array[j+1] = source_array[j+1], source_array[j]
                
    print("".join(source_array))

if __name__ == '__main__':
    number = int(input())
    source_array = input().split(' ')
    bubble_sort(number, source_array)




Комментарии: 2
  1. George

    Чуть быстрее используя компаратор.

    def comparator(number_1, number_2):
    if len(number_1) == len(number_2):
    return number_1 > number_2
    else:
    var1 = number_1 + number_2
    var2 = number_2 + number_1
    return var1 > var2

    def max_number_summator(numbers_arr, comparator):
    for i in range(1, len(numbers_arr)):
    item_to_insert = numbers_arr[i]
    j = i
    while j > 0 and comparator(item_to_insert, numbers_arr[j-1]):
    numbers_arr[j] = numbers_arr[j-1]
    j-= 1
    numbers_arr[j] = item_to_insert
    return numbers_arr

    num = input()
    numbers_arr = [x for x in input().split(‘ ‘)]
    print(».join(max_number_summator(numbers_arr, comparator)))

  2. Тема

    так почище будет

    from typing import List

    def comporator(num_1: str, num_2: str) -> bool:
    if len(num_1) == len(num_2):
    return num_1 > num_2
    var_1 = num_1 + num_2
    var_2 = num_2 + num_1
    return var_1 > var_2

    def max_num(numbers: List) -> str:
    for i in range(1, len(numbers)):
    item_for_sort = numbers[i]
    while i > 0 and comporator(item_for_sort, numbers[i — 1]):
    numbers[i] = numbers[i — 1]
    i -= 1
    numbers[i] = item_for_sort
    return «».join(numbers)

    if __name__ == «__main__»:
    n = int(input())
    task_numbers = input().split()
    print(max_num(task_numbers))

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: