Олимпиадный тренинг

Задача . 34903


Задача

Темы:
Существуют различные способы формально описать правила формирования последовательности идущих подряд символов для их выделения среди других последовательностей символов, например, для поиска имен файлов в каталоге. Одним из способов являются регулярные выражения. Для задания регулярных выражений приняты следующие обозначения:

с Любой неспециальный символ с соответствует самому себе. Специальными символами будем считать только символы [, ], {, }, *, +, -, ? – эти символы не могут по условию данной задачи встретится в тексте.
[...] Любой символ из ...; допустимы диапазоны типа а-z (последовательно идущие символы в алфавите); возможно объединение диапазонов, например, [a-z0-9] и сочетание диапазонов и отдельных символов [a-z0-9~#]. r* Ноль или более вхождений символа r, может применяться и для диапазонов, например, [a-z#]* означает ноль или более вхождений любых символов из диапазона от a до z или символа # в любом порядке.
r+ Одно или более вхождений символа r, может применяться и для диапазонов, например, [a-z>]+ означает одно или более вхождений любых символов из диапазона от a до z или символа > в любом порядке.
r? Ноль или одно вхождение символа r, может применяться и для диапазонов, например,
[a-z@]? означает ноль или одно вхождение любого символа из диапазона от a до z или символа @.
r1r2 За символом или диапазоном r1 следует символ или диапазон r2. { } Число вхождений предыдущего выражения. Например, выражение [0-9]{5} соответствует подстроке из пяти десятичных цифр. Пример: регулярное выражение a+[a-z]{5}.[0-9]* позволяет найти все последовательности символов, которые начинаются с одного или нескольких символов a, после которых идут ровно 5 маленьких латинских букв, затем точка и затем может следовать любое количество (в том числе ноль) арабских цифр.


У Васи на компьютере есть директория “Olymp”, содержимое которой приведено ниже:
task1.txt
task2.txt
task_1.txt
track1.mp3
task
task01.txt
tas01.txt
tasks.txt.gz
hard_10_tasks
mask007.tar

Для поиска файлов Вася ввел некоторое регулярное выражение, которому соответствовали только следующие файлы: task1.txt task2.txt task01.txt mask007.tar Известно, что поисковая утилита, которую использует Вася, выводит имя файла только если регулярному выражению соответствует целиком имя файла, а не какой-либо его фрагмент.
Выберете из списка все регулярные выражения, которые мог ввести Вася.
1. [a-z]+ask[0-9a-z.]+
2. [a-z]+a[a-z]+k[0-9]+.t[a-z0-9_]*
3. [a-z]+a[a-z_]+[0-9]+.[a-z0-9_]*
4. [a-z]{1}a[s]+k[0-9]+.[a-z0-9_]*
5. [a-z_]+[0-9]+[a-z_.]+

Ответ вводится без пробелов.

time 1000 ms
memory 32 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя