Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
подготовка_к_олимпиаде._тур_12 [2013/11/17 18:17] Пронин Роман |
подготовка_к_олимпиаде._тур_12 [2013/11/18 00:06] (текущий) Пронин Роман |
||
---|---|---|---|
Строка 37: | Строка 37: | ||
**4. Текст** | **4. Текст** | ||
+ | |||
Дан текст, состоящий из слов, знаков препинания и других символов. Словом в тексте считается последовательность символов из прописных и строчных букв латинского алфавита. Требуется перевернуть (записать в обратном порядке) все слова текста, оставив знаки препинания и другие символы, включая буквы русского алфавита, без изменений. В строке не более 255 символов, строк в файле не более 1000. | Дан текст, состоящий из слов, знаков препинания и других символов. Словом в тексте считается последовательность символов из прописных и строчных букв латинского алфавита. Требуется перевернуть (записать в обратном порядке) все слова текста, оставив знаки препинания и другие символы, включая буквы русского алфавита, без изменений. В строке не более 255 символов, строк в файле не более 1000. | ||
Строка 42: | Строка 43: | ||
|This is an example.|sihT si na elpmaxe.| | |This is an example.|sihT si na elpmaxe.| | ||
|Prim333primяяrt|mirP333mirpяяtr| | |Prim333primяяrt|mirP333mirpяяtr| | ||
+ | |||
+ | **5. Смайлики** | ||
+ | |||
+ | Напишите программу, которая посчитает количество смайликов в заданном тексте. | ||
+ | |||
+ | Смайликом будем считать последовательность символов, удовлетворяющую условиям: | ||
+ | |||
+ | * первым символом является либо ; (точка с запятой) либо : (двоеточие) ровно один раз | ||
+ | * далее может идти символ – (минус) сколько угодно раз (в том числе символ минус может идти ноль раз) | ||
+ | * в конце обязательно идет некоторое количество (не меньше одной) одинаковых скобок из следующего набора: (, ), [, ]. | ||
+ | * внутри смайлика не может встречаться никаких других символов. | ||
+ | |||
+ | Например, нижеприведенные последовательности являются смайликами: | ||
+ | |||
+ | <code>:) | ||
+ | |||
+ | ;---------[[[[[[[[</code> | ||
+ | |||
+ | в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики): | ||
+ | |||
+ | <code>:-)] | ||
+ | |||
+ | ;-- | ||
+ | |||
+ | -) | ||
+ | |||
+ | ::-( | ||
+ | |||
+ | :-()</code> | ||
+ | |||
+ | В этой задаче надо будет посчитать количество смайликов, содержащихся в данном тексте. | ||
+ | |||
+ | Формат входных данных. Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 100 000 символов. | ||
+ | |||
+ | Формат выходных данных. Выведите одно число — количество смайликов, которые встречаются в тексте. | ||
+ | |||
+ | ^Пример ввода^Пример вывода^ | ||
+ | |<code>:);------[[[[[]</code>|2| | ||
+ | |<code>:-)];----;</code>|1| | ||
+ | |<code>-)(---:---</code>|0| | ||
+ | |<code>hello :-)</code>|1| | ||