zoukankan      html  css  js  c++  java
  • ACM_Encoding

    Encoding

    Time Limit: 2000/1000ms (Java/Others)

    Problem Description:

     给定一个只包含'A' - 'Z'的字符串,我们可以使用以下方法对其进行编码:

    1.每个包含k个相同字符的子字符串应编码为“kX”,其中“X”是该子字符串中唯一的字符。

    2.如果子串的长度为1,则应忽略“1”。

    Input:

    第一行包含一个整数N(1 <= N <= 100),表示测试用例的数量。 接下来的N行包含N个字符串。 每个字符串只包含'A' - 'Z',长度小于10000。

    Output:

    对于每个测试用例,输出一行中的编码字符串。

    Sample Input:

    2
    ABC
    ABBCCC

    Sample Output:

    ABC
    A2B3C
    解题思路:字符串处理,统计一个字符串中相同字母的个数,有相同字母的,数字在前,字母在后,这里边计算边输出,比较方便。
    AC代码:
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int n,len,num;
     6     char a[110];
     7     cin>>n;
     8     while(n--){
     9         cin>>a;
    10         len=strlen(a);
    11         for(int i=0;i<len;i++){
    12             num=1;//标记当前字符起始个数为1
    13             for(int j=i+1;j<len;++j){
    14                 if(a[i]==a[j])num++;
    15                 else break;
    16             }//边计算边输出
    17             if(num>1){cout<<num<<a[i];i+=num-1;}
    18             else cout<<a[i];
    19         }
    20         cout<<endl;
    21     }
    22     return 0;
    23 }
     
  • 相关阅读:
    动画02
    动画01
    css过渡
    06强制类型转换
    05强制类型转换
    jetson 安装opencv4.4.0
    cpp中的内置异常
    cpp中std::string和std::wstring 相互转换
    qt creator杂记
    win10 git bash 使用vim 显示 git log
  • 原文地址:https://www.cnblogs.com/acgoto/p/8845807.html
Copyright © 2011-2022 走看看