Thứ Năm, 30 tháng 4, 2020

Tự học lập trình: KHOAVONG Khóa vòng

Đề


Giải

Duyệt qua các vị trí, cắt vị trí i, chuyển phần từ 1 đến i vào sau xâu, rồi kiểm tra xâu mới có đối xứng không?

Code pascal

var s:string;
    n:longint;


procedure nhap;
begin
        readln(s);
end;

function ktdx(t:string):boolean;
var         nt,i:longint;
begin
        nt:=length(t);
        for i:=1 to nt div 2 do
                if t[i]<> t[nt+1-i] then exit(false);
        exit(true);
end;

function cat_day(x:longint):string;//cat vong tai vi tri x
var i:longint;
        p:string;
begin
        p:='';
        for i:=x+1 to n do p:=p+s[i];
        for i:=1 to x do p:=p+s[i];
        exit(p);
end;

procedure giai;
var p:string;
    i,d:longint;
begin
        d:=0;
        n:=length(s);
        for i:=1 to n do
        begin
                p:=cat_day(i);
                if ktdx(p)=true then
                     //   writeln(i);
                     inc(d);

        end;
        write(d);
end;

begin
        assign(input,'khoavong.inp');reset(input);
        assign(output,'khoavong.out');rewrite(output);
        nhap;
        giai;
end.

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.