Permutation and Palindrome
All submissions for this problem are available.
Read problems statements in Mandarin chinese, Russian and Vietnamese as well.
The result of applying a permutation P on the string s is a string t with length n such that for each i (1 ≤ i ≤ n), the i-th character of t is given as as t[i] = s[Pi].
- The first line of the input contains a single integer T denoting the number of test cases. The description of T test cases follows.
- The first and only line of each test case contains the string s.
For each test case, print a single line. If it is impossible to find a valid permutation P, this line should contain a single integer -1. Otherwise, it should contain n space-separated integers P1, P2, ..., Pn.
If there are multiple valid permutations, you may print any one.
- 1 ≤ n ≤ 105
- s will consist only of lowercase English letters (i.e. characters 'a' through 'z')
Subtask #1 (20 points): 1 ≤ T, n ≤ 10
Subtask #2 (20 points): 1 ≤ T, n ≤ 100
Subtask #3 (60 points): 1 ≤ T ≤ 10
Input 4 aa baa abc abab Output 1 2 2 1 3 -1 1 2 4 3
Example case 1: The string t obtained using the identity permutation will have t = s and t = s. That means t = "aa", which is a palindrome.
Example case 2: The characters of the string t obtained by applying the permutation 2, 1, 3 are t = s, t = s and t = s. Therefore, t = "aba", which is a palindrome.
Example case 3: There is no way to find a permutation P such that we can obtain a palindrome from s using it.
Example case 4: Applying the permutation 1, 2, 4, 3 on s results in t = "abba", which is a palindrome. Another permutation that you may apply is 2, 1, 3, 4; this results in t = "baab", which is also a palindrome.
|Tags||admin2, constructive, feb18, palindrome, simple, string|
|Time Limit:||2 sec|
|Source Limit:||50000 Bytes|
|Languages:||C, CPP14, JAVA, PYTH, PYTH 3.6, PYPY, CS2, PAS fpc, PAS gpc, RUBY, PHP, GO, NODEJS, HASK, rust, SCALA, swift, D, PERL, FORT, WSPC, ADA, CAML, ICK, BF, ASM, CLPS, PRLG, ICON, SCM qobi, PIKE, ST, NICE, LUA, BASH, NEM, LISP sbcl, LISP clisp, SCM guile, JS, ERL, TCL, kotlin, PERL6, TEXT, SCM chicken, PYP3, CLOJ, COB, FS|
Fetching successful submissions
If you are still having problems, see a sample solution here.