4) Xâu đối xứng
Tên tập tin chương trình SYMMETRY.???
Một xâu ký tự X được gọi là xâu đối xứng nếu viết X theo thứ tự ngược lại ta cũng nhận được xâu X.
Yêu cầu: kiểm tra các xâu ký tự có phải là xâu đối xứng không. Dữ liệu vào từ tập tin văn bản SYMMETRY.INP gồm:
– Dòng 1 chứa số nguyên dương N, N < 1000.
- N dòng tiếp theo, dòng thứ i chứa xâu ký tự Xi có không quá 250 ký tự.
Kết quả: Đưa ra tập tin văn bản SYMMETRY.OUT là xâu ký tự S có N ký tự, trong đó ký tự thứ i của S là 1 nếu xâu Xi là xâu đối xứng, là 0 nếu xâu Xi không là xâu đối xứng.
Làm bằng pascal nha
program doi_xung;
var f,g:text;
x:string;
n,i:integer;
{—Ham-doi-xung—}
function ktdx(s:string):boolean;
var j:byte;
st:string;
begin
st:=”;
for j:=length(s) downto 1 do
st:=st+s[i];
if s=st then exit(true) else exit(false);
end;
{—Chuong-trinh-chinh—}
BEGIN
Assign(f,’SYMMETRY.INP’); reset(f);
Assign(g,’SYMMETRY.OUT’); rewrite(g);
readln(f,n);
for i:=1 to n do
begin
readln(f,x);
if ktdx(x) then writeln(g,1) else writeln(g,0);
end;
close(f); close(f);
end.
var f1, f2: text;
i, n: word;
s: string;
Function kt(a: string): boolean;
Var j: byte;
Begin
For j:=1 to (length(a) div 2) do
If a[j]<>a[length(a)-j+1]
Then exit(false);
Exit(true);
End;
Begin
Assign(f1, ‘symmetry.inp’); reset(f1);
Assign(f2, ‘symmetry.out’); rewrite(f2);
Readln(f1, n);
For i:=1 to n do
Begin
Readln(f1, s);
If kt(s)=true then writeln(f2, 1)
Else writeln(f2, 0);
End;
Close(f1); close(f2);
End.