本关任务:参照教材,实现行程编码算法。 测试说明 测试输入:AAAAAACTEEEEEHHHHHHHSSSSSSSS 预期输出:6A1C1T5E7H8S 测试输入:BBFFF 预期输出:2B3F用入门的方式写出代码
时间: 2024-09-10 16:28:22 浏览: 33
行程编码算法(Run-Length Encoding,RLE)是一种简单的数据压缩方法。该算法通过计算连续出现的字符数量(即行程)来压缩数据,将重复出现的数据表示为字符和其对应的重复次数。
以你给出的测试输入为例,我们可以写出如下的行程编码算法代码。这里以C语言为例:
```c
#include <stdio.h>
#include <stdlib.h>
void runLengthEncode(char *input) {
int count = 1; // 初始化计数器为1
// 遍历输入的字符串,直到遇到字符串结束符 '\0'
for (int i = 0; input[i] != '\0'; i++) {
// 检查当前字符是否与下一个字符相同
if (input[i] == input[i + 1]) {
count++; // 如果相同,计数器加1
} else {
// 如果不同,打印当前字符和计数器的值(计数器重置为1)
printf("%d%c", count, input[i]);
count = 1; // 重置计数器
}
}
}
int main() {
// 测试用例1
char input1[] = "AAAAAACTEEEEEHHHHHHHSSSSSSSS";
printf("测试输入:%s\n", input1);
runLengthEncode(input1);
printf("预期输出:%s\n\n", "6A1C1T5E7H8S");
// 测试用例2
char input2[] = "BBFFF";
printf("测试输入:%s\n", input2);
runLengthEncode(input2);
printf("预期输出:%s\n", "2B3F");
return 0;
}
```
这段代码定义了一个`runLengthEncode`函数,它接受一个字符串作为输入,然后遍历这个字符串,计算并打印每个字符的行程。在`main`函数中,我们定义了两个测试用例,并使用`runLengthEncode`函数进行测试。