1123.Encoding SDNUOJ 1123

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 <string>
using namespace std;

int main()
{
    int n;
    while(cin >> n)
    {
        while(n--)
        {
            string s;
            cin >> s;
            while(s.length())
            {
                int temp = s.find_first_not_of(s[0]);
                if(temp == -1)
                {
                    if(s.length() == 1)
                        cout << s << '\n';
                    else
                        cout << s.length() << s[0] << '\n';
                    break;
                }
                if(temp == 1)
                {
                    cout << s[0];
                    s.erase(s.begin());
                }
                else
                {
                    cout << temp << s[0];
                    s.erase(s.begin(), s.begin() + temp);
                }
            }
        }
    }
    return 0;
}

全部评论

相关推荐

能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
07-01 13:37
门头沟学院 Java
steelhead:不是你的问题,这是社会的问题。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务