Pascal
Modified: Wednesday, 22-12-2021 07:00 AM
Cho một xâu chữ số.
Chèn vào dấu cách sao cho tạo thành một dãy số tăng có nhiều số nhất.
Ví dụ '123214' ---> 1 2 3 214.
var s,ss,l:string;
i,j,k:Real;
function tach(s:string):string;
begin
l := '';
j := 0;
//Tach chuoi con
while j<=i do
begin
l := l+s[1];
delete(s,1,1);
val(l,j)
end;
//So sanh chuoi con voi chuoi cu va chuoi con lai
val(s,k);
if ((j>=i) and (j<=k)) then
begin
ss := ss+#32+l;
i := j;
end
else
begin
ss := ss+#32+l+s;
exit(ss);
end;
//Tiep tuc tach chuoi
if length(s)<>0 then
tach(s);
exit(ss);
end;
begin
readln(s);
//s := '123321';
ss := '';
i := 0;
write(tach(s));
readln();
end.