文字壓縮有很多種方法,這裡我們只考慮最簡單的一種:把由相同字元組成的乙個連續的片段用這個字元和片段中含有這個字元的個數來表示。例如ccccc
就用5c
來表示。如果字元沒有重複,就原樣輸出。例如aba
壓縮後仍然是aba
。
解壓方法就是反過來,把形如5c
這樣的表示恢復為ccccc
。
本題需要你根據壓縮或解壓的要求,對給定字串進行處理。這裡我們簡單地假設原始字串是完全由英文本母和空格組成的非空字串。
輸入第一行給出乙個字元,如果是c
就表示下面的字串需要被壓縮;如果是d
就表示下面的字串需要被解壓。第二行給出需要被壓縮或解壓的不超過 1000 個字元的字串,以回車結尾。題目保證字元重複個數在整型範圍內,且輸出檔案不超過 1mb。
根據要求壓縮或解壓字串,並在一行中輸出結果。
c
ttttthhiiiis isssss a tesssst caaaa as
5t2h4is i5s a3 te4st ca3a as
d
5t2h4is i5s a3 te4st ca3a as10z
ttttthhiiiis isssss a tesssst caaaa aszzzzzzzzzz
#include using namespace std;
void compression(string s); //壓縮字串
void decompression(string s); //解壓字串
int main()
return 0;
}void compression(string s) //壓縮字串
if(cnt != 0)
cout << s[i]; //再輸出重複字元
}}void decompression(string s) //解壓字串
for(int j = 0; j < cnt; j++)
if(cnt == 0) //如果不是被壓縮的字元則直接輸出
}}
PAT乙級 字串壓縮與解壓(字串處理)
文字壓縮有很多種方法,這裡我們只考慮最簡單的一種 把由相同字元組成的乙個連續的片段用這個字元和片段中含有這個字元的個數來表示。例如ccccc就用5c來表示。如果字元沒有重複,就原樣輸出。例如aba壓縮後仍然是aba。解壓方法就是反過來,把形如5c這樣的表示恢復為ccccc。本題需要你根據壓縮或解壓的...
PAT 乙級 1078 字串壓縮與解壓
文字壓縮有很多種方法,這裡我們只考慮最簡單的一種 把由相同字元組成的乙個連續的片段用這個字元和片段中含有這個字元的個數來表示。例如ccccc就用5c來表示。如果字元沒有重複,就原樣輸出。例如aba壓縮後仍然是aba。解壓方法就是反過來,把形如5c這樣的表示恢復為ccccc。本題需要你根據壓縮或解壓的...
PAT乙級1078 字串壓縮與解壓 20
文字壓縮有很多種方法,這裡我們只考慮最簡單的一種 把由相同字元組成的乙個連續的片段用這個字元和片段中含有這個字元的個數來表示。例如 ccccc 就用 5c 來表示。如果字元沒有重複,就原樣輸出。例如 aba 壓縮後仍然是 aba。解壓方法就是反過來,把形如 5c 這樣的表示恢復為 ccccc。本題需...