Task 57. Парковка
UniLecsЗадача: дана схема улицы, ктр содержит выезды (Exit - E), остановки (Stop - S) и пешеходные переходы (Crossing - C), остальные участки улицы обозначены на схеме дефисом (-).
Есть несколько правил парковки:
- нельзя парковать машину перед выездом
- нельзя парковать машину на остановке и менее чем в 10 метрах до нее, парковаться после остановки можно.
- нельзя парковать машину на пешеходном переходе и менее чем в 5 метрах до него и после него
Схема улицы разбита на участки длиной в 5 метров, 5 метров - длина парковки для автомобиля.
Написать программу, ктр для каждой схемы улицы выведет кол-во возможных парковочных мест.
Например,
---S--C-E--C--
--С--С--С--С—-
Вывод:
4
2
Идея: простой перебор строки. Для того чтобы можно было припарковать автомобиль, будем проверять след.условия:
1. str[i] = '-'
2. str[i - 1] != 'C' And str[i + 1] != 'C'
3. str[i + 1] != 'S' And str[i + 2] != 'S'
Для удобства работы с разными индексами в строке, дополним исходную строку пробелами (2 или больше) с начала и с конца.
Реализация:

https://gist.github.com/unilecs/480434dd4d48ae4c419914e6a67621a1
Тест: