PAT 1078 字串壓縮與解壓 20分

2021-10-06 08:27:33 字數 1327 閱讀 6957

1078 字串壓縮與解壓 (20分)

文字壓縮有很多種方法,這裡我們只考慮最簡單的一種:把由相同字元組成的乙個連續的片段用這個字元和片段中含有這個字元的個數來表示。例如 ccccc 就用 5c 來表示。如果字元沒有重複,就原樣輸出。例如 aba 壓縮後仍然是 aba。

解壓方法就是反過來,把形如 5c 這樣的表示恢復為 ccccc。

本題需要你根據壓縮或解壓的要求,對給定字串進行處理。這裡我們簡單地假設原始字串是完全由英文本母和空格組成的非空字串。

輸入格式:

輸入第一行給出乙個字元,如果是 c 就表示下面的字串需要被壓縮;如果是 d 就表示下面的字串需要被解壓。第二行給出需要被壓縮或解壓的不超過 1000 個字元的字串,以回車結尾。題目保證字元重複個數在整型範圍內,且輸出檔案不超過 1mb。

輸出格式:

根據要求壓縮或解壓字串,並在一行中輸出結果。

輸入樣例 1:

c

ttttthhiiiis isssss a tesssst caaaa as

輸出樣例 1:

5t2h4is i5s a3 te4st ca3a as
輸入樣例 2:

d

5t2h4is i5s a3 te4st ca3a as10z

輸出樣例 2:

ttttthhiiiis isssss a   tesssst caaaa aszzzzzzzzzz
#include

#include

#include

using

namespace std;

string s;

intmain()

void

fun(

)//壓縮

if(cnt==

0) cout<;else

if(cnt!=

0) cout<1<;//壓縮ttttt,下標判定只到第4個t,但是一共有5個,所以需要輸出cnt+1}}

void

fun2()

//解壓

for(

int j=

0;j) cout<(!sum) cout<}

水題,無參函式用的不是很習慣…

pat乙級題解大全 c++

PAT1078 字串壓縮與解壓 (20 分)

題目 思路 分成兩類,解壓和被解壓。解壓的時候字串中只有字母和空格,只要設定乙個加法器數一數相鄰相同的就好了。被解壓時字串中有字母 空格 數字。特殊點在於數字,設定乙個加法器,將該數字從string轉化成int就好了,如果該加法器數字不變依然為零的話就設定為一。再來一重迴圈輸出數字後面的字母或空格就...

PAT 1078 字串壓縮與解壓 20 分

文字壓縮有很多種方法,這裡我們只考慮最簡單的一種 把由相同字元組成的乙個連續的片段用這個字元和片段中含有這個字元的個數來表示。例如 ccccc 就用 5c 來表示。如果字元沒有重複,就原樣輸出。例如 aba 壓縮後仍然是 aba。解壓方法就是反過來,把形如 5c 這樣的表示恢復為 ccccc。本題需...

PAT 乙級 1078 字串壓縮與解壓

文字壓縮有很多種方法,這裡我們只考慮最簡單的一種 把由相同字元組成的乙個連續的片段用這個字元和片段中含有這個字元的個數來表示。例如ccccc就用5c來表示。如果字元沒有重複,就原樣輸出。例如aba壓縮後仍然是aba。解壓方法就是反過來,把形如5c這樣的表示恢復為ccccc。本題需要你根據壓縮或解壓的...