Share This
Связаться со мной
Крути в низ
Categories
//Цветные карандаши

Цветные карандаши

05.04.2022Category : Python

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

Напишите функцию, которая будет принимать список цветов 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))

cvetnye karandashi 2b0de97 - Цветные карандаши

Английский для программистов

Наш телеграм канал с тестами по английскому языку для программистов. Английский это часть карьеры программиста. Поэтому полезно заняться им уже сейчас

Скачать ×

  • 3 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close