子序列

成绩 开启时间 2014年09月19日 星期五 10:08
折扣 0.8 折扣时间 2014年09月26日 星期五 10:08
允许迟交 关闭时间 2014年09月26日 星期五 10:08
输入文件 subsequence.in 输出文件 subsequence.out

【题目描述】


如果存在一个数列C满足下列条件,我们就认为字符串A为字符串B的一个子序列:

(1)数列C恰好有length(A)个数;

(2)0<=C[0]<C[1]<...<C[length(A)-1]<length(B);

(3)对于每一个i,有A[i]=B[C[i]](0<=i<length(A))。

举个例子,"abcd"是"aaaaaabbbcd"的子序列,而"abcd"不是"aaaaacccdb"的子序列,当然了,任意一个字符串都是它本身的一个子序列。

在本题中,给你一个较长的字符串A,和许多较短的字符串Bi,你需要写一个效率比较高的程序告诉我们Bi是否为A的子序列。


【输入格式】


输入文件的第一行为字符串A,第二行有一个整数M(0<M<=10000),表示短字符串Bi的个数,接下来有M行,每行有一个字符串Bi。

字符串A的长度不超过100000,Bi的长度不超过50,所有的字符串都至少有一个字母,所有的字母均为小写。


【输出格式】


输出有M行,每行含义为:对于每一个Bi,如果它是A的子序列则输出"Yes",否则输出"No"。


【样例输入】

subsequence
2
sequence
bus

【样例输出】

Yes
No

【提示】

在此键入。

【来源】

在此键入。