Cho xâu S gồm các kí tự chữ cái thường và chữ số hãy cho biết cần xóa đi ít nhất bao nhiêu kí tự để thu đc 1 dãy đối xứng
2 câu trả lời
const fi=’palind.inp’;
fo=’palind.out’;
var s: ansistring;
max,l,r,n,li,lj: longint;
procedure nhap;
begin
assign(input,fi);
reset(input);
readln(s);
close(input);
end;
function check(l,r:longint):boolean;
var c:longint;
begin
for c:=1 to (r-l+1) div 2 do
if s[l+c-1]<>s[r-c+1] then exit(false);
exit(true);
end;
procedure xuat;
var i,j: longint;
begin
assign(output,fo);
rewrite(output);
max:=0;
n:=length(s);
for i:=1 to n do
for j:=n downto i do
begin
if j-i+1 < max then break;
if check(i,j) then
begin
if j-i+1 > max then
begin
max:=j-i+1;
li:=i;
lj:=j;
end;
break;
end;
end;
for i:=li to lj do
write(s[i]) ;
close(output);
end;
begin
nhap;
xuat;
end.