Пошук за шаблоном#2562

Пошук за шаблоном

2,5 секунди
256 мегабайтів
Середня

Шаблон P і текст T складаються з літер латинського алфавіту (великі або малі). Шаблон також може містити знак питання ('?'), квадратні та фігурні дужки, як пояснено нижче. Знайдіть усі входження шаблону P у текст T.

Кожна позиція у шаблоні P може бути зайнята:

Наприклад, якщо шаблон P дорівнює A?[bcC]{De}, то перша літера повинна бути 'A', друга — будь-яка літера, третя — b, c або C, а четверта — будь-яка літера, крім D чи e.

Вхідні дані

У першому рядку задано кількість тестів . Кожен тест складається з двох рядків. У першому рядку задано шаблон P, який містить не більше символів і позицій. У другому рядку задано текст, що містить не більше 10^6 літер.

Вихідні дані

Для кожного тесту виведіть в окремому рядку всі позиції початку у тексті, в яких співпадає шаблон, у зростаючому порядку (перша літера тексту T має позицію ). Якщо шаблон P не знайдено у тексті T, виведіть "no match". Між кожною надрукованою позицією має бути один пробіл, без зайвих пробілів на початку або в кінці кожного рядка.

Приклади

Приклад 1

Loading
Loading