Фруктовый салат

Фруктовый салат — блюдо из фруктов, нарезанных на маленькие кусочки. Напишите функцию, которая будет принимать список названий фруктов, делить эти слова пополам и сортировать кусочки в алфавитном порядке. Функция должна возвращать строку, образованную из отсортированных «кусочков фруктов».

Примеры

fruit_salad(["apple", "pear", "grapes"])
➞ "apargrapepesple"

# Кусочки: ["ap", "ple", "pe", "ar", "gra", "pes"]
# Отсортированные кусочки: ["ap", "ar", "gra", "pe", "pes", "ple"]
# Итоговая строка: "apargrapepesple"

fruit_salad(["apple", "pear", "grapes"])
➞ "apargrapepesple"

fruit_salad(["raspberries", "mango"])
➞ "erriesmangoraspb"

fruit_salad(["banana"])
➞ "anaban"

Примечания:

  • Если название фрукта имеет нечетное число букв, правая часть должна быть больше левой. Например, «apple» делится на «ap» и «ple».
  • Все названия фруктов будут в нижнем регистре.

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

def fruit_salad(fruits):
    salad = []
    for fruit in fruits:
        mid = len(fruit) // 2
        salad += [fruit[:mid], fruit[mid:]]
    return ''.join(sorted(salad))
def fruit_salad(lst):
    return ''.join(sorted(sum([[i[0:len(i) // 2], i[len(i)//2:]] for i in lst], [])))
def fruit_salad(fruits):
    chunks = []
    for f in fruits:
        chunks.append(f[:len(f) // 2])
        chunks.append(f[len(f) // 2:])
    return ''.join(sorted(chunks))
def fruit_salad(fruits):
    alp_len = list(len(x) // 2 for x in fruits)
    return "".join(
        sorted(list(x[0:y] for x, y in zip(fruits, alp_len)) + list(list(x[y:] for x, y in zip(fruits, alp_len)))))
Прокрутить вверх