
3种解法 - 实现字符串压缩
初始化变量:首先检查字符串是否为空,如果为空,直接返回。初始化变量 遍历字符串:从第二个字符开始遍历,比较当前字符和 处理最后一个字符:循环结束后,添加最后一个字符及其计数。 比较长度:将结果字符串与原字符串比较,若更短则返回结果,否则返回原字符串。
发布日期:2021-05-08 16:54:44
浏览次数:19
分类:精选文章
本文共 847 字,大约阅读时间需要 2 分钟。
字符串压缩方法
为了实现字符串压缩,我们可以遍历字符串,记录每个字符的出现次数,并将结果以“字符计数”的形式拼接起来。如果压缩后的字符串比原字符串短,我们就返回它,否则返回原字符串。
方法思路
tmpChar
为第一个字符,count
为1。tmpChar
: - 如果相同,增加计数器
count
。 - 如果不同,将当前
tmpChar
和count
添加到结果列表中,然后更新tmpChar
为当前字符,count
重置为1。
代码实现
def compressString(S): if not S: return S result = [] tmpChar = S[0] count = 1 for char in S[1:]: if char == tmpChar: count += 1 else: result.append(f"{tmpChar}{count}") tmpChar = char count = 1 result.append(f"{tmpChar}{count}") compressed = ''.join(result) return compressed if len(compressed) < len(S) else S
示例测试
- 示例1:输入“aabcccccaaa”,输出“a2b1c5a3”。
- 示例2:输入“abbccd”,输出“abbccd”,因为压缩后的长度更长。
这个方法的时间复杂度为O(n),空间复杂度为O(n),适用于较大字符串。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月22日 07时37分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux 超好用的命令行工具
2023-02-02
Linux 跑机器脚本与工具详解
2023-02-02
Linux 软件 RAID 设置
2023-02-02
Linux 软件安装与卸载
2023-02-02
Linux 输入重定向和管道符号
2023-02-02
Linux 运维王者从不离手的10款工具,全用过会变成高手?
2023-02-02
linux 运行.sh 让其执行其中的Python文件
2023-02-02
Linux 运行SHELL报错“-BASH: ./TEST.SH: /BIN/BASH^M: BAD INTERPRETER: NO SUCH FILE OR DIRECTORY”
2023-02-02
Linux 这4个进程相关的命令,太好用!
2023-02-02
Linux 进程和系统监测
2023-02-02
linux 进程控制入门
2023-02-02
Linux 进程管理及监控与性能评估
2023-02-02
Linux 进程管理详解
2023-02-02
linux 通过inode删除文件
2023-02-02
Linux 通过SSH跳板机实现端口转发
2023-02-02
Linux 通过压缩包安装 MySQL 并设置远程连接教程
2023-02-02
Linux 通过监控系统内存并定时重启指定服务
2023-02-02
Linux 逻辑卷详解
2023-02-02