字符串压缩python题目
字符串压缩是一道常见的编程题目,要求将连续出现的字符压缩成字符+出现次数的形式。下面是一个示例:
假设输入的字符串为 "aabcccccaaa",压缩后的结果应该是 "a2b1c5a3"。
为了解决这个问题,可以使用两个指针来遍历字符串。一个指针用于记录当前字符,另一个指针用于记录连续出现的次数。具体的步骤如下:
1. 初始化一个空字符串 `compressed_str` 用于存储压缩后的结果。
2. 从左到右遍历字符串,用一个变量 `count` 记录当前字符的连续出现次数,初始值为1。
3. 比较当前字符与下一个字符是否相同,如果相同,则 `count` 加1。
4. 如果不相同,则将当前字符和 `count` 拼接到 `compressed_str` 中,并将 `count` 重置为1。
5. 遍历结束后,将最后一个字符和 `count` 拼接到 `compressed_str` 中。
6. 返回 `compressed_str`。
下面是一个实现该算法的Python代码示例:
python.
def compress_string(s):
compressed_str = ""
count = 1。
for i in range(len(s)-1):
if s[i] == s[i+1]:
count += 1。
else:
compressed_str += s[i] + str(count)。
字符串长度压缩 count = 1。
compressed_str += s[-1] + str(count)。
return compressed_str.
# 测试示例。
s = "aabcccccaaa"
compressed = compress_string(s)。
print(compressed) # 输出,a2b1c5a3。
这个算法的时间复杂度为 O(n),其中 n 是字符串的长度。它只需要遍历一次字符串即可完成压缩。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论