Представьте, что у вас есть полоска квадратиков, которые нужно закрасить разными цветами в соответствии с заданным паттерном. Квадратики нужно закрашивать последовательно, т. е. если следующий квадрат другого цвета, вам нужно поменять карандаш.
Напишите функцию, которая будет принимать список цветов cols
и возвращать время (в секундах), необходимое для закрашивания всего паттерна. При этом:
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))
При анализе данных часто требуется быстро найти абсолютное значение набора чисел. Для выполнения этой задачи…
Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…
Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…
В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…
В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…
При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…