Ctrl K

Когда закрыть лавку

Средняя
Журнал посещений лавки — строка visits длины n из букв 'Y' и 'N': visits[i] = 'Y', если в час i приходили покупатели, и 'N', если никто не пришёл. Хозяин выбирает час закрытия j (0 ≤ j ≤ n): лавка работает в часы 0, …, j − 1 и закрыта с часа j до конца. Штраф считается так: - +1 за каждый час, когда лавка открыта, а покупателей нет; - +1 за каждый час, когда лавка закрыта, а покупатели пришли. Верните самый ранний час закрытия с наименьшим штрафом.
Пример 1
visits="NYYNY" → 3

Закрыться в час 0 — штраф 3: упущены все три часа с покупателями. В час 3 — штраф 2: в час 0 лавка простаивала, а покупателей часа 4 упустили. В час 5 штраф тоже 2, но час 3 раньше, а меньше 2 не получить.

Пример 2
visits="NNN" → 0

Покупателей нет вовсе — выгоднее не открываться: закрыться в час 0.

Пример 3
visits="YYNYY" → 5
Ограничения
  • 1 ≤ len(visits) ≤ 10⁵
  • visits состоит только из 'Y' и 'N'
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПрокрутка букв по префиксам СредняяПалиндром после пары правок СредняяПодгонка куска строки в рамках бюджета СредняяЧётные гласные СредняяРазвести слова по алфавиту Средняя
загружаем Python…
Вход
visits="NYYNY"
Ожидается
3

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