Viết CT nén xâu kí tự s được nhập từ bàn phím. VD: S='AAABBCDDDD'=>'3A2BC4D' làm ơn ạ
2 câu trả lời
c:=1;dem:=1;//c là chỉ số chỉ ký tự
for i:=2 to length(s) do
if s[i]=s[c] then inc(dem) else
begin
write(dem,s[c]);//xuat ra dem va ky tu (3A)
dem:=1;
c:=i;
end;
program oken;
uses crt;
var s:string;
i,j,dem,k: longint;
sl: array[1..1000000] of longint;
a: array[1..1000000] of char;
begin
clrscr;
write('Nhap xau: '); readln(s);
k:=0;
for i:=32 to 126 do
begin
dem:=0;
for j:=1 to length(s) do
if chr(i)=s[j] then
dem:=dem+1;
if dem<>0 then
begin
k:=k+1;
a[k]:=chr(i);
sl[k]:=dem;
end;
end;
for i:=1 to k do
writeln(a[i],': ',sl[i]);
readln;
end.