Pascal

Modified: Wednesday, 22-12-2021 07:00 AM

Xác định xâu con đối xứng


var s,ss:string;
i,j,k,l:byte;
// Ham kiem tra xau doi xung
function dx(st:string):boolean ;
var i:byte;
begin
    dx := true;
    for i:=1 to (length(st) div 2) do
        if st[i]<>st[length(st)-i+1] then
        exit(false);
end;
// Chuong trinh chinh         
begin
    write('Nhap xau: '); readln(s);
    l := length(s);
    i := l;
    k := 0;
    if l<3 then write('Xau can kiem tra khong hop le!')
        else
    begin
        while (i>=3)and(k=0) do 
        begin
            for j:=1 to (l-i+1) do 
            begin
                ss := copy(s,j,i);
                //writeln(ss);
                if dx(ss)then
                begin
                    inc(k);
                    write('Xau con doi xung dai nhat la: ',length(ss));
                    //break;
                end;
            end;
            dec(i);    
        end;
    end;
    if k=0 then write('Khong co xau con doi xung');
    readln;
end.