[LeetCode] 443. 圧縮文字列
1054 ワード
443.圧縮文字列は、その場アルゴリズムを使用して圧縮される文字のセットを与える.圧縮後の長さは、元の配列の長さよりも常に小さいか、または等しい必要があります.配列の各要素は長さ1の文字(int整数タイプではない)であるべきである.入力配列をその場で修正した後、配列の新しい長さを返す.例:入力:["a","a","b","b","c","c","c"]出力:6を返し、配列に入力された最初の6文字は["a","2","b","2","c","3"]説明:「aa」が「a 2」に置き換えられる.「bb」が「b 2」に置き換えられる.「ccc」が「c 3」に置き換えられる代替.
class Solution:
def compress(self, chars):
n = len(chars) #
i, count = 0, 1 # i, count
for j in range(1, n+1): #
if j < n and chars[j] == chars[j-1]: #
count += 1 # +1
else:
chars[i] = chars[j-1] #
i += 1 # +1
if count > 1: # 1
for m in str(count): #
chars[i] = m #
i += 1 # +1
count = 1 # 1
return i