这是一道简单的编码题,把一个字符串中连续重复的字母从左到右写成KX的形式,如果k是1就省略。
解题思路:对于每一个字符串,拿后一个与前一个比较,如果不相等,就输出字符(注意当k不等于1的时候要先输出k),否则将计数器k加1。 注意每一串比较完后,k的值重新赋为1.
代码如下:
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
main()
{
// ifstream cin("a.txt");
int n,i,j,k;
k=1;
string s;
cin>>n;
for(i=0;i<n;i++)
{ cin>>s;
for(j=1;j<=s.length();j++)
{
if(s[j]!=s[j-1])
{
if(k!=1)cout<<k;
cout<<s[j-1];
k=1;
}
else k++;
}
cout<<endl;
}
}