| ||||||||||
| 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 | |||||||||
这样都要超时?大牛帮忙!label 1;
var
d:array[1..10000] of string;
s,p:string;
i,l:longint;
function checkdelete(a,b:string):boolean;
var
i:integer;
t:string;
begin
checkdelete:=false;
for i:=1 to length(a) do
begin
t:=a;
delete(t,i,1);
if t=b then
begin
checkdelete:=true;
exit;
end;
end;
end;
function checkinsert(a,b:string):boolean;
var
i:integer;
t:string;
begin
checkinsert:=false;
for i:=1 to length(b) do
begin
t:=b;
delete(t,i,1);
if t=a then
begin
checkinsert:=true;
exit;
end;
end;
end;
function checkreplace(a,b:string):boolean;
var
i,k:integer;
begin
k:=0;
for i:=1 to length(a) do
if a[i]<>b[i] then inc(k);
if k=1 then checkreplace:=true
else checkreplace:=false;
end;
begin
readln(p);
l:=0;
while p<>'#' do
begin
inc(l);
d[l]:=p;
readln(p);
end;
readln(s);
while s<>'#' do
begin
for i:=1 to l do
if d[i]=s then
begin
writeln(s,' is correct');
goto 1;
end;
write(s,':');
for i:=1 to l do
if length(d[i])=length(s) then
begin
if checkreplace(s,d[i]) then write(' ',d[i]);
end
else
if length(d[i])=length(s)+1 then
begin
if checkinsert(s,d[i]) then write(' ',d[i]);
end
else
if length(d[i])+1=length(s) then
begin
if checkdelete(s,d[i]) then write(' ',d[i]);
end;
writeln;
1:
readln(s);
end;
end.
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator