Educational Codeforces Round 121 (Rated for Div. 2)——A - Equidistant Letters

A - Equidistant Letters

题源:https://codeforces.com/contest/1626/problem/A

今天上午VP了这场CF,很遗憾的是一道题也没写出来,原因是我犯了一些人类难以想象的错误。。。。话不多说先看题

题意

给定一个字符串(全为小写字母),相同的字母最多出现两次。问你可不可以在经过若干次操作后,使得所有出现两次的字母相隔的距离相等。

思路

既然没有规定距离要是多少,那么就直接把相同的放一起紧挨着好了。输入的时候统计字母出现的次数,然后按字典序输出即可

我滴代码

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;
int t;

int main (){
    cin >> t;
    while (t --){
        int cnt[55];
        memset(cnt, 0, sizeof cnt);
        string s;
        cin >> s;
        
        for (int i = 0; i < s.size(); i ++)
            cnt[s[i] - 'a'] ++;
        for (int i = 0; i < 26; i ++)
            if (cnt[i]){
                cout << char(i + 'a');
                if (cnt[i] == 2)
                cout << char(i + 'a');
            }
        cout << endl;
    }
}
//干啊。。我是什么弱智。。。26个字母。。。

警惕

虽然这个世界上不会有人犯这个错误,但我还是要说一下,记录我的弱智行为,就是我把26个字母记成了24个,所以WA了QAQ

posted @ 2022-03-19 15:28  Sakana~  阅读(25)  评论(0编辑  收藏  举报