给定一个字符串,请你将字符串重新编码,将连续的字符替换成“连续出现的个数+字符”。比如字符串AAAABCCDAA会被编码成4A1B2C1D2A。 输入描述: 每个测试输入包含1个测试用例 每个测试用例输入只有一行字符串,字符串只包括大写英文字母,长度不超过10000。
时间: 2024-03-25 13:36:57 浏览: 47
以下是 C++ 的实现代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
getline(cin, str); // 读取输入的字符串
char curr_char = str[0];
int count = 1;
string result = "";
for (int i = 1; i < str.size(); i++) {
if (str[i] == curr_char) {
count++;
} else {
result += to_string(count) + curr_char;
curr_char = str[i];
count = 1;
}
}
// 处理最后一个字符
result += to_string(count) + curr_char;
cout << result << endl; // 输出编码后的字符串
return 0;
}
```
这里使用了一个计数器 `count` 和一个字符串 `result`,遍历字符串中的每个字符,如果和上一个字符相同,就将计数器加1;如果不同,就将当前字符和计数器的值拼接到 `result` 中,并将计数器重置为1。最后还要处理最后一个字符,将其编码后加到 `result` 末尾。注意,需要将计数器的值转换为字符串类型后再拼接。
阅读全文