1
0
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
1254
1142
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.
Hãy giúp mọi người biết câu trả lời này thế nào?
var str,s:string[100];
n,i:integer;
procedure sx( var a,b:char);
var tam:char;
begin
tam:=a;
a:=b;
b:=tam;
end;
procedure dao(n,i:integer);
var j:integer;
begin
for j:=i+1 to n do
if str[i]=str[j] then
begin
sx(str[j],str[n-i+1]);
exit
end;
end;
begin
clrscr;
write('nhap xau:');readln(str);
n:=length(str);
s:='';
for i:=n downto 1 do s:=s+str[i];
if str=s then writeln('chuoi doi xung:')
else
begin
writeln('chuoi ko doi xung,chuoi da dảo doi xung:');
for i:=1 to n-1 do
dao(n,i);
end;
write(str);
readln;
end.
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin
1
10
0
ý tưởng thuật toán là j z bn
1254
14258
1142
thì cứ viết hàm check rồi xét cả xâu, thêm biến max rồi in ra
1
10
0
oki thanks bạn ^.^