字串壓縮程式

2021-10-02 05:48:58 字數 1159 閱讀 3039

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

壓縮規則:

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

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

用start來記錄一波相同字元的起始位置,然後就是確認乙個currentcharacter記錄當前的這個字元,主要有兩個功能,乙個功能是判斷是否和前乙個字元相同,另乙個功能就是在和前乙個字元作比較,判斷是否連續。如果出現了連續字元的更新,則把前乙個字元的個數(當前索引減去起始索引)以及前乙個字元新增到乙個stringbuffer之中即可。最後就是考慮一下末尾的情況(末尾是乙個單獨的字元以及多個相同字元兩種情況分開考慮)。

public

static string zipstring

(string initstring)

if(initstring.

length()

==0)int start =0;

//當前字元起始索引

char currentcharacter=initstring.

charat(0

);//當前字元

int currentindex =1;

//當前索引

stringbuffer sb =

newstringbuffer()

;while

(currentindexlength()

)if(currentindex-start>1)

sb.(currentcharacter)

;//新增當前字元

currentcharacter = newword;

start=currentindex;

if(currentindex==initstring.

length()

-1)}

if(currentindex==initstring.

length()

-1) currentindex++;}

return sb.

tostring()

;}

字串 字串壓縮

標題 字串壓縮 類別字串處理 時間限制 1s記憶體限制 1000kb 問題描述 有一種簡單的字串壓縮演算法,對於字串中連續出現的同乙個英文本元,用該字元加上連續出現的次數來表示 連續出現次數小於3時不壓縮 例如,字串aaaaabbbabaaaaaaaaaaaaabbbb可壓縮為a5b3aba13b4...

字串壓縮

include using namespace std 題目描述 通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1.僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcb...

字串壓縮

通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1 僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcbc 2 壓縮欄位的格式為 字元重複的次數 字元 例如 字串 yyy...