← К задачам
Матрёшка
Матрёшка - это традиционные деревянные куклы, которые можно вкладывать друг в друга, помещая более маленькие куклы в более большие. Предположим, что списки могут быть вложены аналогичным образом, помещая меньшие списки в большие, в следующем смысле:
Список A может быть вложен внутрь Списка B, если:
min(Список A)>min(Список B)max(Список A)<max(Список B)
Например, если A = [2, 3, 9, 5] и B = [10, 2, 1], то A может быть вложен в B, так как:
min(A) = 2 > 1 = min(B)иmax(A) = 9 < 10 = max(B)
Создайте функцию, которая возвращает True, если каждый подсписок внутри списка может быть вложен в стиле Матрёшки, и False в противном случае.
Примеры
matryoshka([[2, 2, 7], [3, 4, 5, 6], [4, 5]]) ➞ True
# [4, 5] вложен внутри [3, 4, 5, 6], [3, 4, 5, 6] вложен внутри [2, 2, 7] и т.д.
# Куклы вложены от большей к меньшей.
matryoshka([[4, 5], [6, 3], [7, 6, 5, 4, 3, 2], [8, 1]]) ➞ True
# Куклы вложены от меньшей к большей.
matryoshka([[7, 1], [7, 6, 5, 4, 3, 2], [6, 3], [4, 5]]) ➞ False
# [7, 1] и [7, 6, 5, 4, 3, 2] имеют одинаковый максимум.
# Вторая кукла не может быть правильно вложена внутрь первой куклы.
matryoshka([[1, 5], [2, 6], [3, 7]]) ➞ False
# Элементы перекрываются, не могут быть вложены.
Примечание
- Подсписки могут быть вложены как от меньшего к большему, так и от большего к меньшему.
def matryoshka(lst):
Для запуска тестов необходима авторизация.