字符串之字符串压缩

字符串之字符串压缩字符串压缩利用字符重复出现的次数 编写一种方法 实现基本的字符串压缩功能 比如 字符串 aabcccccaaa 会变为 a2b1c5a3 若 压缩 后的字符串没有变短 则返回原先的字符串 你可以假设字符串中只包含大小写英文字母 a 至 z 示例 1 输入 aabcccccaaa 输出 a2b1c5a3 示例 2 输入 abbccd 输出 abbccd 解释 abbccd 压缩后为 a1b2c2d1 比原字符串长度更长 这个题可以直接按照题的意思去写 依次从前往后遍历 初始化字母次数为 1

字符串压缩

输入:"aabcccccaaa" 输出:"a2b1c5a3" 

示例2:

输入:"abbccd" 输出:"abbccd" 解释“abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。 

这个题可以直接按照题的意思去写,依次从前往后遍历,初始化字母次数为1,如果后面的数字和当前数字相同,则次数+1,不相等就把前面的字母和对应的数字添加到结果中,然后把字母次数重新初始化为1.对于最后一个字符,要单独处理,因为后面没有与之对应的字母,所以单独处理即可.

class Solution: def compressString(self, S: str) -> str: n = len(S) if n <= 1: return S S += '#' curr = S[0] cnt = 1 res = '' for i in range(1, n + 1): if S[i] != curr: res += curr + str(cnt) if len(res) >= n: return S[:n] curr = S[i] cnt = 1 else: cnt += 1 return res 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206897.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午3:14
下一篇 2026年3月19日 下午3:15


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号