| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:不是求最大公共子串?In Reply To:不是求最大公共子串? Posted by:pladene at 2003-11-11 20:18:01 你觉得像吗?〉
program matchstring;
Var
A,B,C,d:String[255];
p,x,fd,vmax,vk:integer;
k,j:integer;
function gcd(m,n:integer):integer;
Var
fst:integer;
begin
while n>0 do
begin
fst:=m;
m:=n;
n:=fst mod m;
end;
gcd:=abs(m);
end;
Begin
Readln(A);
While A<>'-1' do
begin
B:=copy(A,pos(' ',A)+1,length(A)-pos(' ',A));
A:=copy(A,1,pos(' ',A)-1);
p:=length(A)+length(B);
{writeln(A);
writeln(B); }
c:=a;
d:=b;
x:=0;
k:=1;
Repeat
j:=1;
vmax:=0;
vk:=k;
Repeat
if a[vk]=b[j] then begin vk:=vk+1; j:=j+1;vmax:=vmax+1; end else
begin
j:=j+1;{vk:=vk+1; }
end;
Until (j>length(B))OR(vk>length(A));
k:=k+1;
if vmax>x then x:=vmax;
Until k>length(A);
x:=2*x;
if x=p then writeln('appx(',c,',',d,') = 1')
else
if x=0 then writeln('appx(',c,',',d,') = 0')
else
begin
fd:=gcd(x,p);
x:=x div fd; p:=p div fd;
writeln('appx(',c,',',d,') = ',x,'/',p);
end;
readln(A);
end;
End.
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator