美文网首页
[good]443. 压缩字符串

[good]443. 压缩字符串

作者: 好吃红薯 | 来源:发表于2019-05-13 21:26 被阅读0次

    给定一组字符,使用原地算法将其压缩。

    压缩后的长度必须始终小于或等于原数组长度。

    数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。

    在完成原地修改输入数组后,返回数组的新长度。

    进阶:
    你能否仅使用O(1) 空间解决问题?

    class Solution:
        def compress(self, chars: List[str]) -> int:
            w = 0  #写入位置
            anchor = 0 #同批相同字符开始位置
            
            for i in range(len(chars)):
                if i==len(chars)-1 or chars[i+1] != chars[i]:
                    chars[w] = chars[anchor]
                    w+=1
                    
                    #大于一个字符的情况
                    if i>anchor:
                        for c in str(i - anchor +1):
                            chars[w] = c
                            w+=1
    
                    anchor = i+1
            
            return w
    

    相关文章

      网友评论

          本文标题:[good]443. 压缩字符串

          本文链接:https://www.haomeiwen.com/subject/meldaqtx.html