任务描述 本关任务:参照教材,实现行程编码算法。 测试说明 测试输入:AAAAAACTEEEEEHHHHHHHSSSSSSSS 预期输出:6A1C1T5E7H8S 测试输入:BBFFF 预期输出:2B3F python,代码简单一点
时间: 2024-09-10 14:25:40 浏览: 30
行程编码算法(Run-Length Encoding,RLE)是一种简单的数据压缩算法,它将连续出现的相同数据(或“行程”)替换成一个表示该数据和行程次数的组,从而达到压缩数据的目的。
根据题目描述,我们需要实现一个函数,该函数接收一个字符串作为输入,并按照行程编码算法的规则返回一个压缩后的字符串。下面是一个简单的Python实现:
```python
def run_length_encode(input_string):
if not input_string: # 输入为空字符串时直接返回空字符串
return ""
# 初始化编码后的字符串和计数器
encoded_string = ""
count = 1
# 遍历输入字符串,统计字符出现的次数并进行编码
for i in range(1, len(input_string)):
if input_string[i] == input_string[i - 1]:
count += 1 # 相同字符,计数器加1
else:
# 遇到不同字符,将前一个字符及其计数加到结果字符串中
encoded_string += str(count) + input_string[i - 1]
count = 1 # 重置计数器
# 处理最后一个行程
encoded_string += str(count) + input_string[-1]
return encoded_string
# 测试案例
print(run_length_encode("AAAAAACTEEEEEHHHHHHHSSSSSSSS")) # 应输出:6A1C5E7H8S
print(run_length_encode("BBFFF")) # 应输出:2B3F
```
这段代码中,`run_length_encode` 函数通过遍历输入字符串,并比较当前字符和前一个字符是否相同来计算行程长度,然后将字符和长度转换为字符串格式拼接起来。