intput:
AAAAAABCCCC
12344
output:
6A1B14C
11123124
//题意统计相邻相同单词出现的次数,出现单个1是输出11 出现连续单个字符时,在单个字符两边 123451
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char str[10005];
int n;
int main()
{
while(gets(str)) {
int s =0; //表示单个字符的开始。
int e = 0; //单个字符结束。
int i = 0;
int cnt;
int len = strlen(str);
while(1) {
cnt = 1; //统计相同单词长度。
while(str[i] == str[i +cnt] && cnt < 9 && i < len) { //统计字符个数,此程序可以通用。
cnt++;
}
if(i == len) { //到达结尾。
if(e) //如果需要结束单个字符。
printf("1");
break;
}
else if(cnt != 1) { //出现相同字符,
if(e) { //如果前面单个字符还没输出单个1,则输出。
printf("1");
e = 0;
}
s= 0; //把单词字符输出1 标记为开始状态。
printf("%d%c", cnt, str[i]);
}else {
e = 1;
if(!s) { //查看开始1 是否输出。
printf("1");
s = 1;
}
printf("%c", str[i]);
if(str[i] == '1') //如果出现单个且是1 在输出一个1;
printf("1");
}
i += cnt;
}
printf("\n");
}
return 0;
}