#codethanksfestival2015e. [code_thanks_festival_2015_e]ノイズ除去
[code_thanks_festival_2015_e]ノイズ除去
问题文
您是一家公司的程序员。
在这家公司中,您的工作是判断从用户那里收集到的字符串的某个连续部分是否包含指定的字符串。
例如,字符串 rhd
包含在字符串 thisisrhdcontest
中,但不包含在字符串 thanks
或字符串 ratheads
中。
然而,通过用户的查询,发现由于不必要的字符作为噪音进入了用户提供的字符串,导致没有按照用户的希望进行判断。
因此,您需要创建一个可以处理以下 Q 个查询 1 到 Q 的程序。
查询 i : "给定字符串 Si 和字符串 Ti。选择一些字符 x1, x2, ... , xk (可以不选择任何字符),将它们从字符串 Si 中删除,得到的字符串 Si' 中可能包含字符串 Ti 吗?"
例如,当 S1 = ratheads
,T1 = rhd
时,从字符串 S1 中删除字符 a
,e
,t
得到的字符串 Si' = rhds
包含字符串 T1 = rhd
,因此可以说字符串 T1 可能包含。
输入
输入将通过标准输入按以下格式提供。
Q S1 T1 S2 T2 : SQ TQ
- 第 1 行包含查询的数量 Q (1 ≤ Q ≤ 5,000)。
- 第 2 行到第 Q 行包含与查询相关的信息。其中第 i 行(1 ≤ i ≤ Q)包含两个由半角小写英文字母组成的字符串 Si, Ti(1 ≤ |Si| ≤ 50, 1 ≤ |Ti| ≤ 50),用空格分隔。
输出
请输出 Q 行。其中第 i 行(1 ≤ i ≤ Q)输出第 i 个查询的答案。如果在查询 i 中字符串 Ti 可能包含,则输出 YES
,否则输出 NO
。在输出末尾加上换行符。
输入例子1
4
ratheads rhd
thisisrhdcontest rhd
yes no
abba aba
输出例子1
YES
YES
NO
NO
共有 4 个查询。
- 查询 1 如问题文中所示。从字符串 S1 中删除字符
a
,e
,t
得到的字符串 Si' =rhds
包含了字符串 T1,因此输出YES
。 - 查询 2 中,即使不删除字符串 S2 中的任何字符,字符串 S2 中仍然包含字符串 T2,因此输出
YES
。 - 查询 3 中,无论如何从字符串 S3 中删除字符都不能使得字符串 Si' 包含字符串 Ti,因此输出
NO
。 - 查询 4 中,无论如何从字符串 S4 中删除字符都不能使得字符串 Si' 包含字符串 Ti,因此输出
NO
。
请注意,在指定字符并删除它时,不能部分删除指定的字符。
输入例子2
5
abcdef bdf
aabbccdd b
abcabcabc aaba
abcdcba dba
ababababa aba
输出例子2
YES
YES
NO
YES
YES