Регулярные выражения

Домашнее задание

  1. {i} Первое

  2. (MCCME) Напишите программу, которая посчитает количество смайликов в заданном тексте. Смайликом будем считать последовательность символов, удовлетворяющую условиям:

    • первым символом является либо ; (точка с запятой) либо : (двоеточие) ровно один раз
    • далее может идти символ – (минус) сколько угодно раз (в том числе символ минус может идти ноль раз)
    • в конце обязательно идет некоторое количество (не меньше одной) одинаковых скобок из следующего набора: (, ), [, ].
    • внутри смайлика не может встречаться никаких других символов.
    • Например, нижеприведенные последовательности являются смайликами:
      :)
      ;---------[[[[[[[[
      в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики):
      :-)]
      ;--
      -)
      ::-(
      :-()

      Формат входных данных:

      • Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 100 000 символов.

      Формат выходных данных:

      • Выведите одно число — количество смайликов, которые встречаются в тексте. Примеры

      Входные данные

      Выходные данные

      :);------[[[[[]

      2

      :-)];----;

      1

      -)(---:---

      0

      hello :-)

      1

Условные обозначения


CategoryClass CategoryVmsh