【NOIP2015模拟11.5】Isfind
Description
Input
Output
Sample Input
4 3
acbc
abc
cba
cc
Sample Output
Y
N
Y
Data Constraint
反思&题解
比赛&正解思路: 暴力+一个小小的特判,判断如果后面的位置全部无空匹配都无法达到子序列的长度就退出……(这都能A,出题人良心!!!)
反思: 运气出奇迹!!!
CODE
uses math;//由于本人太弱,字符串不会用c++处理,所以打了pascal
var
n,m,i,j,k:longint;
s,s1:ansistring;
f:array[0..1005,0..1005]of longint;
bz:boolean;
begin
assign(input,'isfind.in');
reset(input);
assign(output,'isfind.out');
rewrite(output);
readln(n,m);
readln(s);
for k:=1 to m do
begin
readln(s1);
i:=1;
j:=1;
bz:=false;
while (i<=n)and(j<=length(s1)) do
begin
if n-i+1<length(s1)-j+1 then break;
if s[i]=s1[j] then
begin
if j=length(s1) then
begin
bz:=true;
break;
end
else
begin
inc(j);
end;
end;
inc(i);
end;
if bz then writeln('Y')
else writeln('N');
end;
end.