1078 字串壓縮與解壓

2021-10-05 03:22:13 字數 1703 閱讀 8854

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

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

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

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

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

1

2

c

ttttthhiiiis isssss a tesssst caaaa as

1

5t2h4is i5s a3 te4st ca3a as

1

2

d

5t2h4is i5s a3 te4st ca3a as10z

1

ttttthhiiiis isssss a   tesssst caaaa aszzzzzzzzzz

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

3435

3637

#include using namespace std;

int main() else

}} else if (s.length() != 0) else

}if (cnt >= 2) cout << cnt;

cout << pre;

}return 0;

}

二刷

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

3435

3637

3839

4041

4243

4445

46

#include #include#include#include#includeusing namespace std;

int main() else{

if(num.length()>0) cnt = stoi(num);

while(cnt--) cout<

1078 字串壓縮與解壓

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

1078 字串壓縮與解壓

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

1078 字串壓縮與解壓

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