Share This
Связаться со мной
Крути в низ
Categories
//Сбалансированный список

Сбалансированный список

05.04.2022Category : Python

Дан список чисел. Все числа целые, не отрицательные. Количество чисел четное.

Напишите функцию, которая будет делить этот список пополам, определять суммы чисел в половинах списка и сравнивать их.

Функция должна возвращать новый список, в котором половина чисел, сумма которых оказалась меньше, заменяется числами из другой половины.

Если сумма чисел в обеих половинах одинакова, функция должна вернуть исходный список.

Примеры

balanced([1, 2, 4, 6, 3, 1]) ➞ [6, 3, 1, 6, 3, 1] # 1 + 2 + 4 < 6 + 3 + 1   # Итоговый список [6, 3, 1, 6, 3, 1]  balanced([88, 3, 27, 5, 9, 0, 13, 10]) ➞ [88, 3, 27, 5, 88, 3, 27, 5] # 88 + 3 + 27 + 5 > 9 + 0 + 13 + 10   # Итоговый список [88, 3, 27, 5, 88, 3, 27, 5]  balanced([7, 5, 2, 6, 1, 0, 1, 5, 2, 7, 0, 6]) ➞ [7, 5, 2, 6, 1, 0, 1, 5, 2, 7, 0, 6] # 7 + 5 + 2 + 6 + 1 + 0 = 1 + 5 + 2 + 7 + 0 + 6  # Итоговый список [7, 5, 2, 6, 1, 0, 1, 5, 2, 7, 0, 6]

Вариант решения

def balanced(lst):     h1, h2 = sorted((lst[:len(lst)//2], lst[len(lst)//2:]), key=sum)     return lst if sum(h1) == sum(h2) else h2*2

sbalansirovannyj spisok ebcda4e - Сбалансированный список

Английский для программистов

Наш телеграм канал с тестами по английскому языку для программистов. Английский это часть карьеры программиста. Поэтому полезно заняться им уже сейчас

Скачать ×

  • 0 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close