演算法 字串壓縮

2021-06-29 14:06:50 字數 969 閱讀 6513

今天做了一道字串壓縮的演算法題,原題的輸入字串長度都固定了,突然想到如果輸入不固定,也就是不知道要輸入的字串長度的話,那應該怎麼做呢?c++中stl裡的vector是個不錯的選擇。

通過鍵盤輸入一串小寫字母(a~z)組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。

壓縮規則:

1. 僅壓縮連續重複出現的字元。比如字串"abcbc"由於無連續重複字元,壓縮後的字串還是"abcbc".

2. 壓縮欄位的格式為"字元重複的次數+字元"。例如:字串"***yyyyyyz"壓縮後就成為"3x6yz"

要求實現函式: 

void stringzip(const vector&pinputstr, long linputlen,

vector&poutputstr);

【輸入】 pinputstr:  輸入字串

linputlen:  輸入字串長度         

【輸出】 poutputstr: 輸出字串;

示例 輸入:「cccddecc」   輸出:「3c2de2c」

輸入:「adef」     輸出:「adef」

輸入:「pppppppp」 輸出:「8p」

**:#include #include #include #include using namespace std;

void stringzip(const vector&pinputstr, long linputlen, vector&outputstr);

int main()

cout<&pinputstr, long linputlen, vector&poutputstr)

; char result[100];//用於存方出現的字元,不重複

int k=0;

if(ptemp.empty() || n < 0)

return;

for(int i=0; i

字串壓縮演算法

最近我研究出來一種對字串壓縮的演算法,雖然還有一定的缺陷。就是如果字串中的字母過多的話,壓縮效率會大大降低。這個演算法主要是為壓縮數字設計的。現在把原始碼共享出來,希望大家多提意見。using system namespace new919.encrypt private static string...

字串壓縮演算法

時間限制 1秒 空間限制 32768k12 34輸入一串字元,請編寫乙個字串壓縮程式,將字串中連續出現的重複字母進行壓縮,並輸出壓縮後的字串。例如 aac 壓縮為 1ac xyyyyyyzbbb 壓縮為 3x5yz2b 輸入描述 任意長度字串 輸出描述 壓縮後的字串 輸入例子1 xyyyyyyzbb...

字串壓縮演算法

輸入一串字元,請編寫乙個字串壓縮程式,將字串中連續出現的重複字母進行壓縮,並輸出壓縮後的字串。例如 aac 壓縮為 1ac xyyyyyyzbbb 壓縮為 3x5yz2b任意長度字串壓縮後的字串 xyyyyyyzbbb3x5yz2b小紅書19年校招題,這道題在刷pat乙級的時候有寫到過類似的題 pa...