leetcode 443
时间: 2023-08-27 09:07:25 浏览: 63
Leetcode 443题是关于压缩字符串的问题。题目要求我们对给定的字符数组进行原地修改,使其变为压缩后的形式,并返回压缩后的数组长度。
解题的思路是使用双指针来遍历数组。指针j从第二个元素开始遍历,判断当前元素是否与前一个元素相同。如果相同,则计数器count加1;如果不同,则需要将计数的字符放在后面,并更新指针i的位置。当计数器count大于1时,需要将count转换为字符串,并依次放在后面的位置上。最后返回指针i的位置,即为压缩后的数组长度。
下面是示例代码:
```
class Solution(object):
def compress(self, chars):
n = len(chars)
count = 1
i = 0
for j in range(1, n):
if j < n and chars[j-1 == chars[j]:
count += 1
else:
chars[i = chars[j-1]
i += 1
if count > 1:
for m in str(count):
chars[i = m
i += 1
count = 1
return i
```
这样就可以实现对给定字符数组的原地压缩,并返回压缩后的数组长度。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [LeetCode第 443 题:压缩字符串(C++)](https://blog.csdn.net/qq_32523711/article/details/109106406)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [LeetCode刷题记录——第443题(压缩字符串)](https://blog.csdn.net/bulo1025/article/details/86561588)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]