HDU-1020,Encoding

简介: 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<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
  int t,i,num;
  char str[10001];
  scanf("%d",&t);
  while(t--)
  {
    scanf("%s",str);
    int len=strlen(str);
    num=1;
    for(i=0;i<len;i++)
    {
      if(str[i]==str[i+1])
        num++;
      if(str[i]!=str[i+1]||str[i+1]=='\0')
      {
        if(num==1)
          printf("%c",str[i]);
        else
        {
          printf("%d%c",num,str[i]);
          num=1;
        }
      }
    }
    printf("\n");
  }
  return 0;
}


相关文章
|
8月前
|
Java
hdu-4883- (Best Coder) TIANKENG’s restaurant
hdu-4883- (Best Coder) TIANKENG’s restaurant
37 0
|
8月前
|
人工智能
HDU-1159-Common Subsequence
HDU-1159-Common Subsequence
46 0
|
Java
hdu2147 kiki's game(巴什博弈java)
意思是一个棋子只能往左面,下面,或者左下走。不能走的那个输。kiki先走。
93 0
HDOJ 1020 Encoding
HDOJ 1020 Encoding
93 0
HDOJ1020 Encoding
HDOJ1020 Encoding
96 0