回 帖 发 新 帖 刷新版面

主题:求散列查找源程序!!

如题

回复列表 (共3个回复)

沙发

说得详细些

板凳

先qsort

3 楼

看看下面这个我的(大家互相帮助)

program dnasert;
 var p,s:string;i,lp,ls,lx,ll,x:integer;
   rec,l:array[1..1000] of integer;
   function panduan(n:integer):boolean;
     var i:integer;q:boolean;
     begin
      q:=true;
      for i:=1 to n do
       if p[i]<>p[n-i+1] then  begin
         q:=false;break;
         end;
         panduan:=q;
      end;
  begin
  readln(s);
  readln(p);
  ls:=length(s);
  lp:=length(p);
  fillchar(l,sizeof(l),0);
  l[1]:=1;
  for i:=2 to lp do
    begin
      l[i]:=l[i-1];
     if panduan(i) then l[i]:=i mod 2;
     end;
     i:=0;x:=0;
    while(i<=ls-lp)do
      begin
       ll:=0;
       repeat
         inc(ll);
         until((ll=lp)or (s[i+ll]<>p[ll]));
         if ll=lp then begin inc(x);rec[x]:=i;i:=i+1;end
         else i:=i+l[ll];
       end;
       write('totoal=',x);
    for i:=1 to x do
      write(rec[i],'**');
 end.

我来回复

您尚未登录,请登录后再回复。点此登录或注册