Đề
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.