Đề thi tin học trẻ bảng C tỉnh Quảng Bình năm 2009
Trong máy tính, để tiết kiệm bộ nhớ, người ta thường tìm cách nén dữ liệu. Trong việc nén văn bản, ta sử dụng một phương pháp đơn giản được mô tả thông qua ví dụ sau:
Ví dụ:
· Với xâu ký tự: ‘aaaabbb’ sẽ được nén lại thành xâu ‘4a3b’.
· Với xâu ký tự ‘aaab’ sẽ được nén lại thành xâu ‘3ab’.
Cho một xâu ký tự St1 gồm các ký tự thuộc tập 'a'..'z'. Gọi St là xâu nén của xâu St1 theo phương pháp được mô tả như trên. Xâu St gồm N (1 ≤ N ≤ 255) ký tự thuộc tập các ký tự: 'a'..'z', '0'..'9'
Yêu cầu: Hãy giải nén xâu St để được xâu gốc St1.
Dữ liệu vào: xâu ký tự St.
Dữ liệu ra: Ghi xâu St1 là xâu sau khi đã được giải nén.
Ví dụ:
GNEN.INP GNEN.OUT
3a5bc aaabbbbbc
Đăng ký:
Đăng Nhận xét (Atom)
Bài được xem nhiều nhất
-
Cho dãy n số nguyên dương a1, a2, …, an và số nguyên dương S. Hãy đếm xem có bao nhiêu cặp phần tử (ai, aj) (i <> j) thỏa mãn ai + aj ...
-
Nhập xâu s chỉ chứa các chữ cái viết hoa. Đếm xem s có bao nhiêu kí tự khác nhau. Input · Dòng 1: số test t · t dòng sau: mỗi dòng 1 xâu ...
-
Xét xâu S chỉ bao gồm các kí tự ngoặc mở ‘(‘ và ngoặc đóng ‘)’. Xâu S xác định một cách đặt ngoặc đúng, nếu thỏa mãn các điều kiện: · Tổng ...
-
Cho trước số nguyên dương n. Viết chương trình kiểm tra xem có bao nhiêu số nguyên dương nhỏ hơn hoặc bằng n nguyên tố cùng nhau với n (nghĩ...
-
Đề thi tin học trẻ bảng C tỉnh Quảng Bình năm 2009 Trong máy tính, để tiết kiệm bộ nhớ, người ta thường tìm cách nén dữ liệu. T...
-
Phân tích số nguyên dương thành tổng các số hạng của dãy Fibonaci sao cho ít số hạng nhất (các số hạng không được trùng nhau). Xem clip hư...
-
(Tuyến sinh phổ thông năng khiếu 2007) Yêu cầu: Hãy tìm số âm lớn nhất X trong dãy.Cho một dãy gồm N số nguyên a1, a2, …, aN, mỗi số có gi...
-
Tìm số đảo ngược Y của một số X, biết Y gồm các chữ số của X và viết theo thứ tự ngược lại. Xuất ra kết quả là số Y mod 19 Input Output ...
-
Một chuỗi được gọi là có dạng phân số nếu nó có dạng như sau: Tử_số/Mẫu_số. Ví dụ: chuỗi ‘123/456’ biểu diễn cho phân số chuỗi ‘1/12’ biể...
-
Loài người sống trong biển thông tin. Con người ta từng giờ từng phút phải quan hệ với thông tin hoặc tự giác hoặc không tự giác. Vậy thì, ...
program p;
Trả lờiXóauses crt;
var s,ss:string;
i,j,a:integer;
begin
clrscr;
readln(s); ss:='';
for i:=1 to length(s) do
if (s[i] in ['0'..'9']) and (ss='') then ss:=ss+s[i] else
if(not(s[i] in ['0'..'9'])) and (ss<>'') then
begin
val(ss,a);
for j:=1 to a do write(s[i]);
ss:='';
end;
readln;
end.
chuong trinh nay chay ko duoc
Xóaa!duoc r
Xóabai nay chay sai nha! vi du cho 2b3cv thi ket qua bai se ra bbccc thoi!!
XóaUses crt;
Trả lờiXóaVar St,St1,x:string;
i,j,k,l:longint;
Begin
readln(St);
For i:=1 to length(St) do
If (St[i] in ['a'..'z']) then If not (St[i-1] in ['0'..'9']) then Insert('1',St,i);
For i:=1 to length(St) do
Begin
If St[i] in ['0'..'9'] then
For j:=i+1 to length(St) do
If St[j] in ['a'..'z'] then break;
x:=copy(St,i,j-i);
Val(x,k);
For l:=1 to k do
St1:=St1+St[j];
end;
Write(St1);
readln;
end.
program n;
Trả lờiXóauses crt;
var s,so,st1,ss:string;
i,k,j:integer;
begin
clrscr;
readln(s);
for i:=1 to length(s) do
begin
if s[i] in ['0'..'9'] then
begin
so:=so+s[i];
val(so,k);
end;
if not(s[i] in ['0'..'9']) then st1:=st1+s[i];
if st1<>'' then
begin
for j:=1 to k do ss:=ss+st1;
so:='';
st1:='';
k:=1;
end;
end;
write(ss);
readln;
end.
uses crt;
Trả lờiXóavar f:text;
s,so,st1,ss:string;
n,i,k,j,code:integer;
begin
assign(f,'nen.inp');reset(f);
readln(f,s);
close(f);
assign(f,'nen.out');rewrite(f);
for i:=1 to length(s) do
begin
if s[i] in ['0'..'9'] then
begin
so:=so+s[i];
val(so,k);
end;
if (s[i-1] in ['A'..'Z']) or (s[i-1] in['a'..'z']) then
for j:=1 to k do ss:=ss+s[i-1];
k:=1;
so:='';
st1:='';
end;
write(f,ss);
close(f);
end.
cam ơn lời giải, bạn có thể giải nén xâu sau giúp mình không a1b5d15 thành abbbbbddddddddddddddd
Xóasai hết
Trả lờiXóachuẩn mịa lun
XóaProgram GiaiNen;
Trả lờiXóacONST FI='Bai4.inp';
fo='Bai4.out';
var s:string;
Procedure tach(x:string);
var p,c:longint;
f,u:qword;
r:string;
begin
if length(x)=0 then exit;
for p:=1 to length(x) do
begin
if (x[p] in ['A'..'Z']) then begin
write(x[p]); delete(x,p,1); break;
end else
if (x[p] in ['0'..'9']) and (x[p+1] in ['A'..'Z']) then
begin
r:=copy(x,1,p); if length(r)>17 then begin
f:=0;
while f<100000000000000000 do begin
write(x[p+1]);
f:=f+1;
end;
end else
begin
val(r,u); f:=0;
while f<u do begin
write(x[p+1]);
f:=f+1;
end;
end;
delete(x,1,length(r)+1); break;
end;
end; tach(x);
end;
BEGIN
assign(input,fi); reset(input);
assign(output,fo); rewrite(output);
read(s); tach(s);
close(input); close(output);
END.
uses crt;
Trả lờiXóavar st,r:string;a,i,t:integer;
begin
clrscr;
write('nhap xau st: ');readln(st);
r:='';
a:=0;
for i:=1 to length(st) do
if st[i] in ['0'..'9'] then
begin
val(st[i],a);
for t:=1 to a do
write(st[i+1]);
end
else
if (i=1) or (st[i-1] in ['a'..'z']) then write(st[i]);
readln
end.