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 洪峰 but wa now*/
   2 
   3 #include<iostream>
   4 #include<vector>
   5 #include<string>
   6 using namespace std;
   7 
   8 int main()
   9 {
  10  char com[26];
  11  int i,j,k,n;
  12  string s;
  13  vector<int> res(26,0),data(26,0);
  14  for (i=0;i<26;i++)
  15   com[i]=65+i;
  16  cin>>n;
  17  for (i=0;i<n;i++)
  18  {
  19   if (n<1||n>100)
  20    exit(0);
  21   cin>>s;
  22   for (j=0;j<s.length();j++)
  23    for (k=0;k<26;k++)
  24     if (s[j]==com[k])
  25      res[k]++;
  26   for (j=0;j<26;j++)
  27    if (res[j]==1)
  28     cout<<com[j];
  29    else if (res[j]==0)
  30     continue;
  31    else
  32     cout<<res[j]<<com[j];
  33   if (i+1<n)
  34    cout<<endl;
  35   s.clear();
  36   res=data;
  37  }
  38  system("pause");
  39  return 0;
  40 }
ch3n2k.com | Copyright (c) 2004-2020 czk.