2017网易游戏雷火盘古实习生招聘笔试真题-字符串编码

更新

看到了网友一个简洁的代码

include

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=1;
}
}
return 0;
}


#题目:
输入描述
>每个测试输入包含1个测试用例
每个测试用例输入只有一行字符串,字符串只包括大写英文字母,长度不超过10000。

###输出描述
> 输出编码后的字符串

###输入例子
>AAAABCCDAA

###输出例子
>4A1B2C1D2A

###问题分析
仔细审题很容易就过了

###代码
```c++
#include
#include
#include 
#include 

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;
}
```

你可能感兴趣的:(2017网易游戏雷火盘古实习生招聘笔试真题-字符串编码)