Pascal
Modified: Wednesday, 22-12-2021 07:00 AM
Cho chuỗi các chữ số liên tếp.
Xóa n số (input) bất kỳ trong chuỗi sao cho được chuỗi có giá trị nhỏ nhất.
Ví dụ: Cho chuỗi số
15132334312122345
Với số lượng số cần xóa (n=3)
// Lan 1- > 1132334312122345 // Lan 2 -> 112334312122345 // Lan 3 -> 11233312122345 => kết quả đạt được
var s:string;
i:byte;
function Tim_min(s:string):string;
var
max:char;
j:byte;
begin
max := s[1];
for j := 2 to length(s) do
begin
if(s[j] >= max) then max := s[j]
else begin delete(s,j-1,1); break; end;
end;
writeln(s);
exit(s);
end;
begin
s := '15132334312122345';
s := s + '0';
for i := 1 to 3 do
begin
writeln('Lan ',i);
s := tim_Min(s);
end;
writeln;
s := copy(s,1,length(s)-1);
write(s);
readln;
end.