思路很简单。但始终想不明白自己第一次写的代码哪里有问题。
先贴第一次的代码。
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
int main()
{
int t,i;
string str;
cin>>t;
int abc[26]={0};getchar();
while(t--)
{
memset(abc,0,sizeof(abc));
cin>>str;
for(i=0;i<str.length();i++)abc[str[i]-'A']++;
for(i=0;i<str.length();i++)
{
if(abc[str[i]-'A']!=0)
{
if(abc[str[i]-'A']==1){cout<<str[i];abc[str[i]-'A']=0;}
else
{
cout<<abc[str[i]-'A']<<str[i];
abc[str[i]-'A']=0;
}
}
}
cout<<endl;
}
return 0;
}
始终wrong answer!
第二次的代码
# include <iostream>
# include <string>
using namespace std;
int main()
{
string str;
int t;
cin>>t;
while(t-- )
{
cin>>str;
char c=str[0];
int sum=1;
for(int i=1;i<=str.size();i++)
{
if(str[i]==c)
sum++;
else
{
if(sum==1)
cout<<c;
else
cout<<sum<<c;
c=str[i];
sum=1;
}
}
cout<<endl;
}
return 0;
}