hdu 1020 Encoding

Problem Description

Given a string containing only 'A' - 'Z', we could encode it using the following method:

  1. Each sub-string containing k same characters should be encoded to "kX" where "X" is the only character in this sub-string.
  2. If the length of the sub-string is 1, '1' should be ignored.

Input

The first line contains an integer N (1 <= N <= 100) which indicates the number of test cases. The next N lines contain N strings. Each string consists of only 'A' - 'Z' and the length is less than 10000.

Output

For each test case, output the encoded string in a line.

Sample Input

2

ABC

ABBCCC

Sample Output

ABC

A2B3C

#include &lt;algorithm&gt;
#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;cstdio&gt;
#include &lt;vector&gt;
#include &lt;cmath&gt;
#include &lt;queue&gt;
#include &lt;deque&gt;
#include &lt;cmath&gt;
#include &lt;map&gt;

using namespace std;
typedef long long ll;

const double inf=1e20;
const int maxn=1e5+10;
const int mod=1e9+7;

char a[maxn];
char s[maxn];
int num[maxn];

int main(){
    int t;
    scanf(&quot;%d&quot;,&amp;t);
    while(t--){
        scanf(&quot;%s&quot;,a);
        int len=strlen(a);
        int j=0;
        s[0]=a[0];
        num[0]=1;
        for(int i=1;i&lt;len;i++){
            if(a[i]==s[j])num[j]++;
            else {
                s[++j]=a[i];
                num[j]=1;
            }
        }
        for(int i=0;i&lt;=j;i++){
            if(num[i]!=1){
                printf(&quot;%d&quot;,num[i]);
            }
            printf(&quot;%c&quot;,s[i]);
        }printf(&quot;\n&quot;);
    }
    return 0;
}

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。