Encoding

Time limit: 1 Seconds

Memory limit: 32768K

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.

1. 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 100.

2. Output

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

3. Sample Input

2
ABC
ABBCCC

4. Sample Output

ABC
A2B3C

http://acm.zju.edu.cn/show_problem.php?pid=2478


   1 /*written by 洪峰
   2 AC了哦*/
   3 
   4 #include<iostream>
   5 using namespace std;
   6 
   7 int main()
   8 {
   9         char s[200],temp;
  10         int i,j,n,flag;
  11         cin>>n;
  12         for (i=0;i<n;i++)
  13         {
  14                 cin>>s;
  15                 temp=s[0];
  16                 flag=1;
  17                 for (j=1;j<strlen(s);j++)
  18                         if (temp==s[j])
  19                                 flag++;
  20                         else
  21                         {
  22                                 if (flag==1)
  23                                         cout<<temp;
  24                                 else
  25                                         cout<<flag<<temp;
  26                                 flag=1;
  27                                 temp=s[j];
  28                         }
  29                 if (flag==1)
  30                         cout<<temp<<endl;
  31                 else
  32                         cout<<flag<<temp<<endl;
  33         }
  34         return 0;
  35 }

zju2478 (2008-02-23 15:34:13由localhost编辑)

ch3n2k.com | Copyright (c) 2004-2020 czk.