1626A

A. Equidistant Letters
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

You are given a string s, consisting of lowercase Latin letters. Every letter appears in it no more than twice.

Your task is to rearrange the letters in the string in such a way that for each pair of letters that appear exactly twice, the distance between the letters in the pair is the same. You are not allowed to add or remove letters.

It can be shown that the answer always exists. If there are multiple answers, print any of them.

Input

The first line contains a single integer tt (1t10^3) — the number of testcases.

Each testcase consists of a non-empty string ss, consisting of lowercase Latin letters. Every letter appears in the string no more than twice. The length of the string doesn't exceed 52

Output

For each testcase, print a single string. Every letter should appear in it the same number of times as it appears in string ss. For each pair of letters that appear exactly twice, the distance between the letters in the pair should be the same.

If there are multiple answers, print any of them.

Example
input
3
oelhl
abcdcba
ac
output
hello
ababcdc
ac
Note

In the first testcase of the example, the only letter that appears exactly twice is letter 'l'. You can rearrange the letters arbitrarily, since there are no distances to compare.

In the second testcase of the example, the letters that appear exactly twice are 'a', 'b' and 'c'. Initially, letters 'a' are distance 6 apart, letters 'b' are distance 4 apart and letters 'c' are distance 2 apart. They are not the same, so we have to rearrange the letters. After rearrangement, letters 'a' are distance 2 apart, letters 'b' are distance 2 apart and letters 'c' are distance 2 apart. They are all the same, so the answer is valid.

In the third testcase of the example, there are no letters that appear exactly twice. Thus, any rearrangement is valid. Including not changing the string at all.

 

 题目分析:这个题就是给你一串字符串,每个字符串中相同的字母不能超过两个,现在让你设计一个字符串满足相同的字母之间的距离相等

  比如:abab 

    a的距离为1

    b的距离为1

  因此就符合答案

 

所以我们可以构思,如果存在两个相同的字母,我让他们的距离为0,然后从a开始一直往z打印就行了

 

代码实现

复制代码
 1 #include "bits/stdc++.h"
 2 using namespace std;
 3 int bucket[30];
 4 int main()
 5 {
 6     int t;
 7     cin >> t;
 8     while(t--){
 9         memset(bucket,0,sizeof(bucket));
10         string ans;
11         getchar();
12         cin >> ans;
13         for(auto iter = ans.begin();iter != ans.end();iter++){
14             if(bucket[*iter - 'a'] < 2)
15                 bucket[*iter - 'a']++;
16         }
17 
18         for(int i = 0;i < 26;i++)
19             while(bucket[i]--)
20                 cout << char(i + 'a');
21         cout << endl;
22     }
23     return 0;
24 }
复制代码

 

posted @   scannerkk  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示