更新
看到了网友一个简洁的代码
include<iostream>
using namespace std;
int main(){
string str;
cin>>str;
int num=1;
for(int i=1;i<=str.length();i++){
if(str[i]==str[i-1])
num++;
else{
cout<<num<<str[i-1];
num=1;
}
}
return 0;
}
#题目:
输入描述
>每个测试输入包含1个测试用例
每个测试用例输入只有一行字符串,字符串只包括大写英文字母,长度不超过10000。
###输出描述
> 输出编码后的字符串
###输入例子
>AAAABCCDAA
###输出例子
>4A1B2C1D2A
###问题分析
仔细审题很容易就过了
###代码
```c++
#include<stdint.h>
#include<stdio.h>
#include <iostream>
#include <string>
using namespace std;
string bianMa(string s) {
string out = "";
int count = 0;
char curent_char = s[0];
for (int i = 0; i < s.length(); i++) {
if (curent_char == s[i]) {
count++;
if(i==s.length()-1){
string s1 = to_string(count) + s[i];
out += s1;
}
} else {
string s1 = to_string(count) + s[i-1];
out += s1;
count = 1;
curent_char = s[i];
if (i == s.length() - 1){
s1 = to_string(count) + s[i];
out += s1;
}
}
}
return out;
}
int main() {
string a = "AAAAAA";
cout << bianMa(a) << endl;
return 0;
}
```