美文网首页LeetCode刷题
[LeetCode] 443. 压缩字符串

[LeetCode] 443. 压缩字符串

作者: 杏仁小核桃 | 来源:发表于2018-12-05 11:50 被阅读3次

443. 压缩字符串
给定一组字符,使用原地算法将其压缩。
压缩后的长度必须始终小于或等于原数组长度。
数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。
在完成原地修改输入数组后,返回数组的新长度。
示例:
输入:
["a","a","b","b","c","c","c"]
输出:
返回6,输入数组的前6个字符应该是:["a","2","b","2","c","3"]
说明:
"aa"被"a2"替代。"bb"被"b2"替代。"ccc"被"c3"替代。

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

相关文章

  • [LeetCode] 443. 压缩字符串

    443. 压缩字符串给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应...

  • 443. 压缩字符串

    内容 给定一组字符,使用原地算法将其压缩。 压缩后的长度必须始终小于或等于原数组长度。 数组的每个元素应该是长度为...

  • 443. 压缩字符串

    2021-08-21 LeetCode每日一题 链接:https://leetcode-cn.com/proble...

  • LeetCode 字符串[L1]

    443. 压缩字符串 双指针一个读一个写 434. 字符串中的单词数 双指针取单词 459. 重复的子字符串 写了...

  • LeetCode | 面试题 01.06. 字符串压缩【Pyth

    LeetCode 面试题 01.06. 字符串压缩【Easy】【Python】【双指针】 问题 力扣 字符串压缩。...

  • [good]443. 压缩字符串

    给定一组字符,使用原地算法将其压缩。 压缩后的长度必须始终小于或等于原数组长度。 数组的每个元素应该是长度为1 的...

  • Leetcode-面试题 01.06 字符串压缩

    面试题 01.06. 字符串压缩[https://leetcode-cn.com/problems/compres...

  • Leetcode 443. String Compression

    文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. S...

  • LeetCode 443. String Compression

    题目 Given an array of characters, compress it in-place.The...

  • 1394-字符串压缩

    字符串压缩 题目 字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabc...

网友评论

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

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