Pascal
Modified: Wednesday, 22-12-2021 07:00 AM
Xác định xâu con của chuỗi
uses crt;
var s:string;
a:array[1..100] of string;
iA:byte;
sXuat:string;
// xuat chuoi con khac nhau
procedure ExportSubString(arr:array of string);
var i:byte;
begin
sXuat := arr[1];
writeln(sXuat);
for i:=2 to iA do
if arr[i]<>sXuat then
begin
sXuat := arr[i];
write(sXuat,' ');
end;
end;
// sap xep cac chuoi con
procedure SortString(arr:array of string);
var i,j:byte;
temp:string;
begin
for i:=1 to iA-1 do
for j:=i+1 to iA do
if arr[j]<arr[i] then
begin
temp := arr[j];
arr[j]:=arr[i];
arr[i]:=temp;
end;
ExportSubString(arr);
end;
// tach chuoi ra cac chuoi con
procedure SplitString(s:string);
var i,j,Len:byte;
ss:string;
begin
iA := 0;
len := length(s);
i := len;
while i>=1 do
begin
fillchar(a,sizeof(a),0);
for j:=1 to (len-i+1) do
begin
ss := copy(s,j,i);
inc(iA);a[ia]:=ss;
end;
SortString(a);
dec(i);
end;
end;
//main
begin
repeat
clrscr;
writeln('Nhap xau can kiem tra: > 1 ky tu va <=15 ky tu');
readln(s);
until ((length(s)>1) and (length(s)<=15));
SplitString(s);
readln;
end.