题意:
这道题好像是第二次写了,题意稍微有点混淆,没说清楚是不是按字母顺序下来,实际是按原来串的顺序下来就好,边缘处理下就可以啦!
代码:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
int n,tmp;
cin>>n;
string s;
char flag;
while(n--)
{
cin>>s;
vector <char> storeLetter;
vector <int> storeAmount;
flag=s[0];
tmp=0;
storeLetter.push_back(s[0]);
for(int i=0;i<s.length();i++)
{
if(s[i]!=flag)
{
flag=s[i];
storeAmount.push_back(tmp);
storeLetter.push_back(s[i]);
tmp=1;
}
else
tmp++;
}
storeAmount.push_back(tmp);
for(int i=0;i<storeAmount.size();i++)
{
if(storeAmount[i]>1)cout<<storeAmount[i];
cout<<storeLetter[i];
}
cout<<endl;
}
return 0;
}