Đề 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 ...
-
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ĩ...
-
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ư...
-
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 ...
-
Một dãy được gọi là đối xứng gương nếu các phần tử cách đều đầu và cuối thì bằng nhau. Cho dãy số A(N). Hãy tìm một dãy con các phần tử liên...
-
(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...
-
Đề 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...
-
Tìm X biết: 10 + 11 + 12 + 13 + ... + X = 5106 ------ Hướng dẫn giải: Hãy cố gắng nhớ lại công thức tính tổng dãy tăng có quy luật (số đ...
-
Thầy Quách Văn Lượm Điện thoại, Zalo: 0915080405 Facebook: https://www.facebook.com/qvluom Group trao đổi giải thuật: Giải bài tập ...
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.