题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1020
这道题有一个小陷阱,题目要求要统计相同的字符,但要是连续的,举个例子,“ABBCCCAABCCBB"解码之后的字符串是”A2B3C2AB2C2B“而不是”3A5B5C“。
代码:
#include<iostream>
#include<string>
#define maxsize 10000
using namespace std;
int main(){
int n,i,j,k,length,numc;
char num[maxsize];
while(cin>>n){
for(i=0;i<n;i++){
scanf("%s",&num);
length=strlen(num);
j=0;
while(j<length){
//if(num[j]!=' '){
numc=1;
for(k=j+1;num[j]==num[k]&&k<length;k++)
{
numc++;
//num[k]=' ';
}
if(numc!=1)
cout<<numc<<num[j];
else
cout<<num[j];
// }
j+=numc;
}
cout<<endl;
}
}
return 0;
}