【题意】
求两个字符串的最长公共子序列的长度
【输入】
多组数据,每组数据一行
每一行两个字符串,每个字符串不超过200位,之间用空格分隔(这个空格包括#9,#10,#13)
【输出】
对于每组数据,输出一个数字表示最长公共子序列的长
比较坑人的题,注意读入即可
program poj1458;
var
a,b:ansistring;
o,i,j,k:longint;
f:array [0..1,0..1001] of longint;
begin
while not seekeof do
begin
fillchar(f,sizeof(f),0);
readln(b);
for i:=1 to length(b) do
case b[i] of
#9:b[i]:=' ';
#10:b[i]:=' ';
#13:b[i]:=' ';
end;
i:=pos(' ',b);
a:=copy(b,1,i-1);
delete(b,1,i);
while pos(' ',b)<>0 do delete(b,pos(' ',b),1);
for i:=1 to length(a) do
begin
o:=1-o;
for j:=1 to length(b) do
begin
f[o,j]:=f[o,j-1];
if f[1-o,j]>f[o,j] then f[o,j]:=f[1-o,j];
if (a[i]=b[j])and(f[1-o,j-1]+1>f[o,j]) then f[o,j]:=f[1-o,j-1]+1;
end;
end;
writeln(f[o,length(b)]);
end;
end.