Xâu A được gọi là tiền tố của xâu B nếu length(A) <= length(B) và sau khi xóa đi kí tự cuối cùng của B thì thu được A. Yêu cầu: Cho n xâu. Tìm xâu dài nhất sao cho nó là tiền tố của ít nhất 2 trong số n xâu đã cho. Nếu cùng độ dài thì xuất ra theo từ điển --- LPREFIX.INP 7 CHEDDAR CHESSO CHAOURCE PARMESAN CHAUMES ROQUEFORT POSSIA --- LPREFIX.OUT CHA

1 câu trả lời

uses crt;
Var a,u:array[1..1000]of string; b:array[1..1000]of longint; s,m:string; i,j,z,y,n,x,k:longint; d:text;
begin
clrscr;
   assign(d,'input.pas');reset(d);
      readln(d,n);
      for i:=1 to n do readln(d,a[i]);
      for i:=1 to n do
         begin
            s:='';
             for j:=1 to length(a[i]) do
                 begin
                    s:=s+a[i][j];
                    x:=0;
                    for z:=1 to k do If (s=u[z])or(length(s)=b[z]) then x:=1;
                    If x=0 then
                    begin
                    inc(k);
                    u[k]:=s;
                       for z:=1 to n do
                          begin
                             m:='';
                             for y:=1 to length(s) do m:=m+a[z][y];
                             If m=s then inc(b[k]);
                          end;
                    end;
                 end;
         end;
   i:=k;
   while(b[i]=1)do dec(i);
   writeln(u[i]);
   close(d);
readln
end.

Tuy hơi dài nhưng đúng , nhớ vote cho mình nha

Câu hỏi trong lớp Xem thêm