/*在不同字符后面插入字符的个数
如
输入:aabscd
输出:aa2b1s1c1d1
输入:aabbbcdd
输出:aa2bbb3c1dd2
思路:从0开始遍历字符串,依次比较两个相邻元素是否相等,
相等,继续逐位比较,记录相同元素的个数count,count初始值为1,
如果不相等将input_str前0到i的i+1个元素给到输出out_str,
input_str剩余的元素len -(i+1)个重新赋值给input_str,因此每次都从0元素开始遍历input_str
初始化i 和count 重新开始下一轮的比较
*/
string transformation(string input_str){
int len = input_str.length();
int count = 1;
string out_str ="";
if(len < 1){
return input_str + to_string(count);
}
int i = 0;
while(i < len){
if(input_str[i] == input_str[i + 1]){
count++;
i++;
}else{
//每次都从0开始
out_str += input_str.substr(0, i + 1);
out_str += to_string(count);
input_str = input_str.substr(i+1, len-(i + 1));
len = len - (i + 1);
//重新count计数
i = 0;
count = 1;
}
}
return out_str;
}
int main(int argc, char *argv[])
{
string input_str = "aabbbcdd";
string out = transformation(input_str);
cout<< out << endl;
}