Description
给你一个由大写字母组成的组成的字符串,你可以用如下规则对其进行编码:
1、 包含K个相同字母的连续字符串可以用KX表示,其中X是相同的字母。
2、 如果K为1,不输出K
Input
输入有多组,直到文件结束。每组一个字符串,长度为10000以内
Output
输出编码后的字符串。
Sample
Input
ABC ABBCCC
Output
ABC A2B3C
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <stdio.h>
#include <vector>
using namespace std;
/*
1.定义字符数组str[10001],定义计数变量cnt
2.while多组输入字符数组
3.遍历数组每一个元素,当前str[i]==str[i+1],那么就continue,cnt++
4.不相等,cnt大于1输出cnt,以及当前字符,否则只输出当前字符
5.边界情况:考虑到最后\0结尾,和字符串最后一个字母不同,所以可以不考虑
*/
char str[10001];
int cnt=1;
int main()
{
while(cin>>str)
{
for(int i=0; str[i]!='\0'; i++)
{
if(str[i]==str[i+1])
{
cnt++;
continue;
}
else
{
if(cnt==1)
{
printf("%c",str[i]);
cnt=1;
}
else
{
printf("%d%c",cnt,str[i]);
cnt=1;
}
}
}
puts("");
}
return 0;
}