1. Trang chủ
  2. » Cao đẳng - Đại học

De thi Tin hoc tre

2 12 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 2
Dung lượng 6,91 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Dữ liệu vào cho trong tập tin văn bản CHUOI.INP gồm nhiều dòng, mỗi dòng là một chuỗi kí tự cần xem xétcác chuỗi có độ dài không quá 80 kí tự.. Kết quả ghi trong tập tin văn bản CHUOI.OU[r]

Trang 1

Bài 11 Chuỗi đối xứng

Mỗi chuỗi kí tự được gọi là đối xứng nếu nó có không ít hơn 1 kí tự và nếu ta đọc từ phải sang trái hay từ trái sang phải đều giống nhau Ví dụ ' Z ' , ' TOT ' , ' NAN ' là các chuỗi đối xứng còn ' NAM ' không phải.Yêu cầu:

Viết chương trình nhận vào chuỗi kí tự cho trước S và hãy cho biết có bao nhiêu chuỗi con khác nhau của S là chuỗi đối xứng Chuỗi con của S là chuỗi gồm một số kí tự nằm liên tiếp nhau trong S

Dữ liệu vào cho trong tập tin văn bản CHUOI.INP gồm nhiều dòng, mỗi dòng là một chuỗi kí tự cần xem xét(các chuỗi có độ dài không quá 80 kí tự )

Kết quả ghi trong tập tin văn bản CHUOI.OUT có số dòng bằng với số dòng của CHUOI.INP Mỗi dòng chứa một số nguyên là con số cho biết số chuỗi con đối xứng của

chuỗi ở dòng tương ứng trong CHUOI.INP.Ví dụ:

program chuoi;

use crt;

var s:string;

f,f1:text;

a:array[1 200] of string;

Function dx(s:string):boolean;

var bl:boolean; i:word;

Begin

bl:=true;

For i:=1 to length(s) do

If s[i] <> s[length(s)-i+1] then bl:=false;

dx:=bl;

End;

Function from(s:string;d:word):boolean;

var i:word; bl:boolean;

Begin

bl:=false;

If d=0 then bl:=false

Else For i:=1 to d do

If s=a[i] then bl:=true;

from:=bl;

End;

Function xet(s:string):word;

var s1:string; d,i,j:word;

Begin

Trang 2

fillchar(a,sizeof(a),0);

d:=0;

For i:=1 to length(s) do

For j:=1 to length(s)-i+1 do Begin

s1:=copy(s,i,j);

If dx(s1) then

If not from(s1,d) then Begin

inc(d); a[d]:=s1; End;

End;

xet:=d;

End;

Begin

assign(f,'chuoi.inp'); Reset(f); assign(f1,'chuoi.out');

Rewrite(f1);

While not eof(f) do

Begin

Readln(f,s);

Writeln(f1,xet(s));

End;

Close(f);Close(f1);

End

Ngày đăng: 06/11/2021, 02:04

w