Задача №1619. Смайлики
Разбор добавил Александр Чистяков
Данная задача решается методом "конечного автомата":
В переменную Rez будем записывать количество найденных смайликов (изначально Rez = 0)
Посимвольно проанализируем полученную на вход строку. Пускай какая-нибудь переменная хранит текущее состояние "автомата":
0 - ожидается ввод ':'
1 - ожидается ввод '-', '(', ')', '[', ']'
Тогда алгоритм обработки символа конечным автоматом будет следующий:
1)На вход символ ':':
Переходим в состояние 1
2)На вход символ '-':
Если текущее состояние не равно 1, то переходим в состояние 0, иначе переходим к следующему символу;
3)На вход символ '(', ')', '[' или ']':
Если текущее состояние равно 1, то увеличиваем Rez на 1;
Переходим в состояние 0;
4)На вход символ отличный от вышеперечисленных:
Переходим в состояние 0
После однократного прохода по строке в переменной Rez будет ответ на поставленный вопрос :--))Сдать: для сдачи задач необходимо войти в систему
11
statement