給定一組字元,使用原地演算法將其壓縮。
壓縮後的長度必須始終小於或等於原陣列長度。
陣列的每個元素應該是長度為1 的字元(不是 int 整數型別)。
在完成原地修改輸入陣列後,返回陣列的新長度。
示例 1:
輸入:["a","a","b","b","c","c","c"]輸出:返回6,輸入陣列的前6個字元應該是:["a","2","b","2","c","3"]說明:"aa"被"a2"替代。"bb"被"b2"替代。"ccc"被"c3"替代。示例 2:
輸入:["a"]輸出:返回1,輸入陣列的前1個字元應該是:["a"]說明:沒有任何字串被替代。示例 3:
輸入:["a","b","b","b","b","b","b","b","b","b","b","b","b"]輸出:返回4,輸入陣列的前4個字元應該是:["a","b","1","2"]。說明:由於字元"a"不重複,所以不會被壓縮。"bbbbbbbbbbbb"被「b12」替代。注意:注意每個數字在陣列中都有它自己的位置。
所有字元都有乙個ascii值在[35, 126]
區間內。
1 <= len(chars) <= 1000
。
class solution:def compress(self, chars):
""":type chars: list[str]
:rtype: int
"""i, n = 0, len(chars)
char_str = ''
while i < n:
count = 1
while i < n-1 and chars[i+1] == chars[i]:
i += 1
count += 1
char_str += chars[i]
if count > 1:
char_str += str(count)
i += 1
char_str =list(char_str)
for j in range(len(char_str)):
chars[j] = char_str[j]
return len(char_str)
字串 字串壓縮
標題 字串壓縮 類別字串處理 時間限制 1s記憶體限制 1000kb 問題描述 有一種簡單的字串壓縮演算法,對於字串中連續出現的同乙個英文本元,用該字元加上連續出現的次數來表示 連續出現次數小於3時不壓縮 例如,字串aaaaabbbabaaaaaaaaaaaaabbbb可壓縮為a5b3aba13b4...
字串壓縮
include using namespace std 題目描述 通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1.僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcb...
字串壓縮
通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1 僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcbc 2 壓縮欄位的格式為 字元重複的次數 字元 例如 字串 yyy...