Chuỗi lặp lại là chuỗi mà nếu ta đọc từ trái sang phải có chuỗi ký tự liền sau giống dãy ký tự trước đó; Độ dài chuỗi lặp lại nhỏ nhất là 2 ký tự và là một số chẵn.
Ví dụ: chuỗi ‘abab’ là chuỗi lặp lại; chuỗi ‘abcab’ không phải là chuỗi lặp lại.
Viết chương trình nhập vào từ bàn phím chuỗi ký tự S có chiều dài không quá 255 ký tự. In ra màn hình chuỗi con lặp lại dài nhất của S. Biết rằng chuỗi con của S là chuỗi gồm một số ký tự liên tiếp nhau trong S có độ dài nhỏ hơn hoặc bằng độ dài của chuỗi S. Trong trường hợp không tìm được chuỗi lặp lại thì thông báo “KHONG TIM DUOC”.
Chương trình ví dụ:
Moi ban nhap vao chuoi S: zababcabcdq
CODE THAM KHẢO
var s, kq: string;
procedure giai;
var i,j: integer;
s2, s3: string;
begin
for i:=1 to length(s)-1 do
begin
for j:=1 to length(s) div 2 do
begin
s2:=copy(s,i,j);
s3:=s2;
while (pos(s3+s2,s) > 0) do s3:=s3+s2;
if (length(kq) < length(s3)) then
if (length(s3) > length(s2)) then kq:=s3;
end;
end;
end;
begin
assign(input,'BAI04.INP'); reset(input);
assign(output,'BAI04.OUT'); rewrite(output);
readln(s);
kq:='';
giai;
if length(kq) > 0 then write(kq)
else write('KHONG TIM THAY');
close(input); close(output);
end.
Đăng nhận xét