Представьте, что у вас есть полоска квадратиков, которые нужно закрасить разными цветами в соответствии с заданным паттерном. Квадратики нужно закрашивать последовательно, т. е. если следующий квадрат другого цвета, вам нужно поменять карандаш.

Напишите функцию, которая будет принимать список цветов cols и возвращать время (в секундах), необходимое для закрашивания всего паттерна. При этом:

  • на смену карандаша уходит 1 секунда
  • на закрашивание квадратика уходит 2 секунды

Пример с пояснением

color_pattern_times(["Red", "Blue", "Red", "Blue", "Red"]) ➞ 14
# Тут 5 цветов. На закрашивание уйдет по 2 с на каждый (2 x 5 = 10).
# Карандаш придется сменить 4 раза, каждая смена займет секунду (1 x 4 = 4).
# 10 + 4 = 14

Примеры

color_pattern_times(["Blue"]) ➞ 2
color_pattern_times(["Red", "Yellow", "Green", "Blue"]) ➞ 11
color_pattern_times(["Blue", "Blue", "Blue", "Red", "Red", "Red"]) ➞ 13

Примечание: если подряд идут два одинаковых цвета, карандаш менять не придется.

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

def color_pattern_times(cols):
    changes = sum(a != b for a, b in zip(cols, cols[1:]))
    return changes + len(cols)*2
def color_pattern_times(cols):
    return len(cols)*2 + sum(i != j for i, j in zip(cols[1:], cols))
Марина

Recent Posts

Абсолютное значение числа в Python

При анализе данных часто требуется быстро найти абсолютное значение набора чисел. Для выполнения этой задачи…

10 часов ago

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

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

1 неделя ago

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

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

2 недели ago

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

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

3 недели ago

Что такое Werkzeug?

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

4 недели ago

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

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

1 месяц ago