Ctrl K

Собрать все шары в одной коробке

Средняя
В ряд стоят коробки. Строка boxes описывает их: boxes[i] равен '1', если в коробке i лежит один шар, и '0', если коробка пуста. За один ход можно переложить один шар в соседнюю коробку. В одной коробке может оказаться сколько угодно шаров. Для каждой коробки i посчитайте, за сколько ходов минимум можно собрать в ней все шары, если начинать с исходной раскладки. Верните список этих чисел.
Пример 1
boxes="1001" → [3, 3, 3, 3]

Шары в коробках 0 и 3. Для любой коробки между ними путь обоих шаров в сумме равен 3.

Пример 2
boxes="0110" → [3, 1, 1, 3]

Чтобы собрать всё в коробке 0, шары проходят 1 + 2 = 3 хода; в коробке 1 — только один ход для соседнего шара.

Ограничения
  • 1 ≤ len(boxes) ≤ 10⁵
  • Каждый символ boxes — '0' или '1'
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПрокрутка букв по префиксам СредняяПалиндром после пары правок СредняяКниги между подпорками СредняяПрокрутка букв по отрезкам СредняяМинуты на вывоз вторсырья Средняя
загружаем Python…
Вход
boxes="1001"
Ожидается
[3, 3, 3, 3]

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