Ctrl K

Нитка бус без повторов

Средняя
На нитке подряд нанизаны бусины. Цвет бусины i — буква beads[i], а снять её с нитки стоит effort[i] секунд. Нужно добиться, чтобы никакие две соседние бусины не были одного цвета. Для этого можно снимать любые бусины; после снятия оставшиеся смыкаются, и соседями становятся те, что стояли по краям снятой. Верните наименьшее суммарное время, за которое этого можно добиться.
Пример 1
beads="rggbg", effort=[2, 5, 3, 1, 4] → 3

Подряд идут две бусины g (позиции 1 и 2). Дешевле снять вторую — 3 секунды.

Пример 2
beads="bbbab", effort=[4, 1, 6, 2, 2] → 5

В начале три бусины b подряд: оставляем самую дорогую (6), снимаем остальные за 4 + 1 = 5.

Пример 3
beads="abc", effort=[7, 7, 7] → 0

Соседних одинаковых бусин нет, снимать ничего не нужно.

Ограничения
  • 1 ≤ len(beads) ≤ 10⁵
  • len(effort) = len(beads)
  • 1 ≤ effort[i] ≤ 10⁴
  • beads состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСлово по таблице префиксов СложнаяИгроки через одного ЛёгкаяМеньше всего прыжков до конца СредняяДобраться до последней клетки СредняяСколько угодно сделок Средняя
загружаем Python…
Вход
beads="rggbg", effort=[2, 5, 3, 1, 4]
Ожидается
3

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 81 тест на сервере, включая скрытые.