问题3451--Search by template

3451: Search by template

[命题人 : ]
时间限制 : 3.000 sec  内存限制 : 64 MB

题目描述

The pattern P and the text T are given. They contain the letters of the Latin alphabet (lowercase and uppercase). The pattern may also contain the characters '?', '[', ']', '{' and '}' You must find all the positions where P appears in T. Each position in the pattern P may contain:  a letter from the Latin alphabet ('a' – 'z', 'A' – 'Z')  the character '?' that can replace any letter (on its place can be any letter)  brackets '['...']', between them there is the set of letters that may be in the current position  brackets '{'...'}', between them there is the set of letters that are not allowed to be in the current position  the letters can be repeated in brackets like [asssa] or {kLLf}. For example, if the pattern P is A?[bcCc]{De}, then the first letter of a match must be A, the second can be any Latin letter, the third - letter b, c or C, and the fourth can be any Latin letter except D or e.

输入

The first line contains the number of test cases n. Each test consists of two lines. The first line contains the pattern P with no more than 100 characters and 60 positions. The second line contains the text with no more than 10^6 letters.

输出

For each test case print on a separate line all text positions where the pattern matches, in ascending order (the first letter from the text T is assumed to have the position ‘1’). If the pattern P does not appear in text T, print the message "no match". There must be a single space between each printed position, and no extra space at the beginning/end of line.

样例输入 Copy

3
A?[bcCc]{De}
yAqCpsApbeAocqq
???[QWERTY]
aSdFrQererRTY
{eRT}?
eRTeRTq

样例输出 Copy

2 11
3 8 9 10
no match

来源/分类