通過鍵盤輸入一串小寫字母(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...