← К задачам
Тяжело · +5ВалидацияЛогикаМассивыСортировка

Матрёшка

Матрёшка - это традиционные деревянные куклы, которые можно вкладывать друг в друга, помещая более маленькие куклы в более большие. Предположим, что списки могут быть вложены аналогичным образом, помещая меньшие списки в большие, в следующем смысле:

Список A может быть вложен внутрь Списка B, если:

  1. min(Список A) > min(Список B)
  2. 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):
    
Для запуска тестов необходима авторизация.
Поддержать проект