ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

Личное первенство УрГУ 2002

Описание     Задачи     Отправить на проверку     Состояние проверки     Результаты
Соревнование завершено

C. Сопоставление с шаблоном

Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ
При разработке очередной СУБД, вам поставили задачу реализовать оператор ‘like’. Оператор ‘like’ сравнивает текстовую строку с заданным шаблоном и говорит, удовлетворяет ли эта строка шаблону. Шаблон является текстовой строкой, в которой допустимы любые символы. При этом некоторые символьные последовательности шаблона имеют особый смысл:
% допускает совпадение с любым количеством любых символов
_ допускает совпадение с любым одиночным символом
[с1-с2] допускает совпадение с любым одиночным символом из диапазона c1-c2
[c1c2c3…cN] допускает совпадение с любым одиночным символом из последовательности c1,c2,c3,…,cN
[^с1-с2] допускает совпадение с любым одиночным символом не из диапазона с1-с2
[^c1c2c3…cN] допускает совпадение с любым одиночным символом не из последовательности c1,c2,c3,…,cN

Исходные данные

В первой строке находится число N ≤ 1000. В следующих N строках находятся выражения для проверки совпадения строки с шаблоном в следующем формате:
'строка' like 'шаблон'
Строка или шаблон могут содержать любые символы с кодами 32-255. Если строка или шаблон содержат символ ' (ASCII 39), то этот символ удваивается. Максимальная длина строки или шаблона — 100 символов.

Результат

Для каждого из N сравнений выведите YES или NO, в зависимости от того, удовлетворяет строка шаблону или нет.

Пример

исходные данныерезультат
15
'abcde' like 'a'
'abcde' like 'a%'
'abcde' like '%a'
'abcde' like 'b'
'abcde' like 'b%'
'abcde' like '%b'
'25%' like '_5[%]'
'_52' like '[_]5%'
'ab' like 'a[a-cdf]'
'ad' like 'a[a-cdf]'
'ab' like 'a[-acdf]'
'a-' like 'a[-acdf]'
'[]' like '[[]]'
'''''' like '_'''
'U' like '[^a-zA-Z0-9]'
NO
YES
NO
NO
NO
NO
YES
YES
YES
YES
NO
YES
YES
YES
NO
Автор задачи: Павел Атнашев
Источник задачи: Third USU personal programming contest, Ekaterinburg, Russia, February 16, 2002
Чтобы отправить решение этой задачи на проверку перейдите в Архив задач: 1177. Сопоставление с шаблоном