every blog every motto: You will never know unless you try
0. 前言
冲冲冲
1. 字符串
1.1 题目
1.2 代码
class Solution:
def compress(self, chars: List[str]) -> int:
anchor = 0 # 字符的起始位置
writer = 0 # 记录该写位置的索引
for current_read_index, c in enumerate(chars):
# 当读取到下一个字符和当前字符不同或最后一个字符时
if current_read_index + 1 == len(chars) or chars[current_read_index + 1] != c:
# 字符起始位置写入第一个字符
chars[writer] = chars[anchor]
# 写入索引后移一个
writer += 1
# 出现大于1个的字符
if current_read_index > anchor:
# 相同字符的个数 -> 转为字符串 eg:3 -> '3',13->'13'
for digit in str(current_read_index - anchor + 1):
# 写入字符个数
chars[writer] = digit
# 该写字符的索引+1
writer += 1
#
anchor = current_read_index + 1
# print(chars)
return writer