CF1799C Double Lexicographically Minimum
Description
You are given a string $ s $ . You can reorder the characters to form a string $ t $ . Define $ t_{\mathrm{max}} $ to be the lexicographical maximum of $ t $ and $ t $ in reverse order.
Given $ s $ determine the lexicographically minimum value of $ t_{\mathrm{max}} $ over all reorderings $ t $ of $ s $ .
A string $ a $ is lexicographically smaller than a string $ b $ if and only if one of the following holds:
- $ a $ is a prefix of $ b $ , but $ a \ne b $ ;
- in the first position where $ a $ and $ b $ differ, the string $ a $ has a letter that appears earlier in the alphabet than the corresponding letter in $ b $ .
Input Format
The first line contains a single integer $ t $ ( $ 1 \leq t \leq 10^5 $ ) — the number of test cases. Descriptions of test cases follow.
The first and only line of each test case contains a string $ s $ ( $ 1 \leq |s| \leq 10^5 $ ). $ s $ consists of only lowercase English letters.
It is guaranteed that the sum of $ |s| $ over all test cases does not exceed $ 10^5 $ .
Output Format
For each test case print the lexicographically minimum value of $ t_{\mathrm{max}} $ over all reorderings $ t $ of $ s $ .
Explanation/Hint
For the first test case, there is only one reordering of $ s $ , namely "a".
For the second test case, there are three reorderings of $ s $ .
- $ t = \mathtt{aab} $ : $ t_{\mathrm{max}} = \max(\mathtt{aab}, \mathtt{baa}) = \mathtt{baa} $
- $ t = \mathtt{aba} $ : $ t_{\mathrm{max}} = \max(\mathtt{aba}, \mathtt{aba}) = \mathtt{aba} $
- $ t = \mathtt{baa} $ : $ t_{\mathrm{max}} = \max(\mathtt{baa}, \mathtt{aab}) = \mathtt{baa} $
The lexicographical minimum of $ t_{\mathrm{max}} $ over all cases is "aba".