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