1 kí tự giống nhau, chẳng hạn gồm n kí tự "a" sẽ được ghi thành na. Ví dụ xâu 'aaaabbcd' sẽ được nén thành 4a2bcd. Hãy viết chương trình nén và giải nén. (Chú ý trong các xâu được nén phải không có chữ số). - Goc pho" />
OPTADS360
AANETWORK
AMBIENT
YOMEDIA
Banner-Video
IN_IMAGE

Một xâu kí tự có thể "nén" theo cách sau: Một xâu con gồm n>1 kí tự giống nhau, chẳng hạn gồm n kí tự "a" sẽ được ghi thành na. Ví dụ xâu 'aaaabbcd' sẽ được nén thành 4a2bcd. Hãy viết chương trình nén và giải nén. (Chú ý trong các xâu được nén phải không có chữ số).

  bởi Goc pho 30/11/2021
ADSENSE/lession_isads=0
QUẢNG CÁO
 

Câu trả lời (1)

  • const  fi='string.inp';

           fo='string.out';

    var    f,g:text; s1,s2:string;

    {================}

    procedure  doc;

     

    begin

      assign(f,fi); reset(f);

      readln(f,s1);

      readln(f,s2);

      close(f);

    end;

    {================}

    procedure  nen;

    var   s,kq:string; i,d:integer; ch:char;

    begin

      d:=1; s1:=s1+#32;ch:=s1[1];  kq:='';

      for i:=2 to length(s1) do

       if s1[i]=s1[i-1] then inc(d)

       else

        begin

          str(d,s);

          if d<>1 then kq:=kq+s+ch else kq:=kq+ch;

          d:=1;

          ch:=s1[i];

        end;

      writeln(g,kq);

    end;

    {================}

    procedure   giainen;

    var s,kq,so:string; i,j,code,n:integer; ch:char;

    begin

       i:=1;  kq:='';

       repeat

          so:='0';

          while s2[i] in ['1'..'9'] do  begin so:=so+s2[i];inc(i); end;

          val(so,n,code);

          if n>1 then

            for j:=1 to n do kq:=kq+s2[i]

          else kq:=kq+s2[i];

          inc(i);

       until i> length(s2);

      writeln(g,kq);

    end;

    {================}

    begin

      assign(g,fo); rewrite(g);

      doc;

      nen;

      giainen;

      close(g);

    end.

      bởi Lê Tấn Thanh 30/11/2021
    Like (0) Báo cáo sai phạm

Nếu bạn hỏi, bạn chỉ thu về một câu trả lời.
Nhưng khi bạn suy nghĩ trả lời, bạn sẽ thu về gấp bội!

Lưu ý: Các trường hợp cố tình spam câu trả lời hoặc bị báo xấu trên 5 lần sẽ bị khóa tài khoản

Gửi câu trả lời Hủy
 
 

Các câu hỏi mới

NONE
OFF