Есть план этажа здания. На этом этаже 4 комнаты (1, 2, 3, 4), все выходят в общий коридор. Комнаты не сообщаются между собой: чтобы перейти из одной комнаты в любую другую, нужно пройти через коридор.

Создайте функцию, которая будет проверять, возможен ли переданный ей путь по комнатам. Коридор будет обозначаться буквой «H» (Hall).

Примеры

 possible_path([1, "H", 2, "H", 3, "H", 4]) ➞ True
 possible_path(["H", 3, "H"]) ➞ True
 possible_path([1, 2, "H", 3]) ➞ False

Примечания

  • Путь может начинаться или кончаться в коридоре.
  • В качестве инпута будут передаваться только цифры 1-4 и/или буква «H».
  • Комнаты не будут повторяться.

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

def possible_path(lst):
    return len(set(type(i) for i in lst[::2])) == 1
def possible_path(lst):
  
    valid_pair = lambda n1, n2: True if n1 == 'H' and n2 in range(1, 5) or n2 == 'H' and n1 in range(1, 5) else False
    answer = True
  
    for n in range(len(lst) - 1):
        ci = lst[n]
        ni = lst[n+1]
    
        answer = valid_pair(ci, ni)
    
        if answer == False:
            break
  
    return answer
def possible_path(lst):
    if len(lst) == 1:
        return True
    return all(idx % 2 for idx, i in enumerate(lst) if i == "H") or \
        all(not idx % 2 for idx, i in enumerate(lst) if i == "H") and not lst.count("H") % 2

Марина

Recent Posts

Библиотека Pydantic: валидация данных на Python

Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…

1 день ago

7 наилучших библиотек визуализации Python на 2024 год

Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…

5 дней ago

Как преобразовать строку в байты в Python

В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…

2 недели ago

Что такое Werkzeug?

В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…

3 недели ago

Как прибавить дни, месяцы и годы к дате в Python

При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…

3 недели ago

Социальная аутентификация в приложении на Flask

В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…

1 месяц ago