Bài 12: Kiểu xâu

Trần Thanh Sơn
Mọi người giúp em bài này với ạ: SNENXAU - Nén xâu Để tiết kiệm bộ nhớ khi lưu trữ thông tin thì ta có thể sử dụng các kỹ thuật nén thông tin. Ví dụ: Cho xâu “aaabbbbcccccc” ta có thể nén thành “3a4b6c”. Khi muốn sử dụng thông tin ta tiến hành giải nén thông tin đã nén để sử dụng.

Em hãy lập trình:

a) nhập vào một xâu chưa nén và hãy nén xâu đó.

b) Nhập vào một xâu đã nén và hãy giải nén xâu đó.

Kết quả thông báo ra màn hình.

Ví dụ input aaaaabbEEE
3a5C output 5a2b3E
aaaCCCCC
Nguyễn Lê Phước Thịnh
23 tháng 5 2020 lúc 14:08

Cái này làm trên 1 bài hay làm trên 2 bài riêng biệt vậy bạn?

Bình luận (0)
Minh Lệ
23 tháng 5 2020 lúc 20:03

Program HOC24;

const fi='SNENXAU.INP';

var d: array['A'..'z'] of integer;

i,j,t,l: byte;

s1,s2: string;

f: text;

c: char;

procedure ip;

begin

assign(f,fi);

reset(f);

readln(f,s1);

read(f,s2);

close(f);

end;

BEGIN

ip;

for i:=1 to length(s1) do

if s1[i] in ['A'..'z'] then inc(d[s1[i]]);

for c:='A' to 'z' do

if d[c]>0 then write(d[c],c);

writeln;

t:=0;

for i:=1 to length(s2) do

begin

if s2[1] in ['A'..'z'] then

begin

write(s2[1]);

delete(s2,1,1);

end;

if (s2[i] in ['A'..'z']) and (s2[i-1] in ['A'..'z'])

then write(s2[i]);

if s2[i] in ['0'..'9'] then

begin

val(s2[i],l);

t:=t*10+l;

end;

if not(s2[i] in ['0'..'9']) then

for j:=1 to t do

begin

write(s2[i]);

t:=0;

end;

end;

readln

end.

Bình luận (0)

Các câu hỏi tương tự
Khánh Mỹ
Xem chi tiết
Thọ Phạm
Xem chi tiết
Huy Lê Đình
Xem chi tiết
Quang Tuấn Quách
Xem chi tiết
Tiên Tiên
Xem chi tiết
Ji Han
Xem chi tiết
Ngô Thành Chung
Xem chi tiết
Cao minh
Xem chi tiết
Khánh Mỹ
Xem chi tiết