【题意】
求两个字符串的最长公共子序列的长度
【输入】
多组数据,每组数据一行
每一行两个字符串,每个字符串不超过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.