← Home
write a go solution for Description:
You have a string s_1s_2ldotss_n and you stand on the left of the string looking right. You want to choose an index k (1<=k<=n) and place a mirror after the k-th letter, so that what you see is s_1s_2ldotss_ks_ks_k-1ldotss_1. What is the lexicographically smallest string you can see?

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 aneb;
- 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 of input contains one integer t (1<=t<=10,000): the number of test cases.

The next t lines contain the description of the test cases, two lines per a test case.

In the first line you are given one integer n (1<=n<=10^5): the length of the string.

The second line contains the string s consisting of n lowercase English characters.

It is guaranteed that the sum of n over all test cases does not exceed 10^5.

Output Format:
For each test case print the lexicographically smallest string you can see.

Note:
In the first test case choose k=1 to obtain "cc".

In the second test case choose k=3 to obtain "cbaabc".

In the third test case choose k=1 to obtain "aa".

In the fourth test case choose k=1 to obtain "bb".. Output only the code with no comments, explanation, or additional text.