LeetCode 壓縮字串

2021-09-13 18:40:42 字數 1060 閱讀 6622

給定一組字元,使用原地演算法將其壓縮。

壓縮後的長度必須始終小於或等於原陣列長度。

陣列的每個元素應該是長度為1 的字元(不是 int 整數型別)。

在完成原地修改輸入陣列後,返回陣列的新長度。

高階:你能否僅使用o(1) 空間解決問題?

示例 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。

思路分析:使用一趟掃瞄,掃瞄到重複字元時,確定重複的個數然後將重複的移除,最後將個數轉換為字串插入到相應的位置。(時間複雜度o(n),額外的空間複雜度o(1))

leetcode 壓縮字串

給定一組字元,使用原地演算法將其壓縮。壓縮後的長度必須始終小於或等於原陣列長度。陣列的每個元素應該是長度為1 的字元 不是 int 整數型別 在完成原地修改輸入陣列後,返回陣列的新長度。示例 1 輸入 a a b b c c c 輸出 返回6,輸入陣列的前6個字元應該是 a 2 b 2 c 3 說明...

LeetCode 壓縮字串

題目描述 給定一組字元,使用原地演算法將其壓縮。壓縮後的長度必須始終小於或等於原陣列長度。陣列的每個元素應該是長度為1 的字元 不是 int 整數型別 在完成原地修改輸入陣列後,返回陣列的新長度。高階 你能否僅使用o 1 空間解決問題?示例 1 輸入 a a b b c c c 輸出 返回6,輸入陣...

LeetCode 字串壓縮

字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 示例2 輸入 ab...