Task 57. Парковка

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 или больше) с начала и с конца.

Реализация:

реализация на C#

https://gist.github.com/unilecs/480434dd4d48ae4c419914e6a67621a1


Тест:

https://dotnetfiddle.net/vaSXoO

Report Page