Ограничения: время – 1s/2s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Напишите программу, которая посчитает количество смайликов в заданном тексте.
Смайликом будем считать последовательность символов, удовлетворяющую условиям:
- первым символом является либо ; (точка с запятой) либо : (двоеточие) ровно один раз
- далее может идти символ – (минус) сколько угодно раз (в том числе символ минус может идти ноль раз)
- в конце обязательно идет некоторое количество (не меньше одной) одинаковых скобок из следующего набора: (, ), [, ]
- внутри смайлика не может встречаться никаких других символов.
Например, нижеприведенные последовательности являются смайликами:
:)
;---------[[[[[[[[
в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики):
:-)]
;--
-)
::-(
:-()
В этой задаче надо будет посчитать количество смайликов, содержащихся в данном тексте.
Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы,
символы, которые могут встречаться в смайликах. Длина строки не превышает `100\ 000` символов.
Выведите одно число — количество смайликов, которые встречаются в тексте.
Пример ввода 1
:);------[[[[[]
Пример ввода 2
:-)];----;
Пример ввода 3
-)(---:---
Источник: Московская командная олимпиада школьников по программированию, 2009/10 учебный год