小红拿到了一个回文串,她希望你将这个回文串重排,使得重排后仍然是回文串且和原串不同。你能帮帮她吗?

本题依然是个思维题,让回文串重排且要求与原串不同,很容易想到前面做过的循环移位与排列构造问题,将字符串对半砍,将前半部分循环移位即是最可能与原串不同的字符串排列,然后再将重新排列后的字符串重新组合,若字符串长度为奇数,那么还需要再加上中间的字符。最后将得到的字符串与原串进行比较,若相同,那么肯定不存在这种字符串,输出-1;若不同,那么就得到了我们想要的字符串了。

s = input()
n = len(s)
if n == 1:
    print(-1)
    exit()

t = []

if n % 2 == 0:
    for i in range(1, n//2):
        t.append(s[i])
    t.append(s[0])
    ans = t + t[::-1]
    ans = ''.join(map(str, ans))
    if ans != s:
        print(ans)
    else:
        print(-1)
elif n % 2 == 1:
    for i in range(1, n//2):
        t.append(s[i])
    t.append(s[0])
    ans = t + list(s[n//2]) + t[::-1]
    ans = ''.join(map(str, ans))
    if ans != s:
        print(ans)
    else:
        print(-1)