Фруктовый салат — блюдо из фруктов, нарезанных на маленькие кусочки. Напишите функцию, которая будет принимать список названий фруктов, делить эти слова пополам и сортировать кусочки в алфавитном порядке. Функция должна возвращать строку, образованную из отсортированных «кусочков фруктов».
Примеры
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)))))