小红拿到了一个回文串,她希望你将这个回文串重排,使得重排后仍然是回文串且和原串不同。你能帮帮她吗?
本题依然是个思维题,让回文串重排且要求与原串不同,很容易想到前面做过的循环移位与排列构造问题,将字符串对半砍,将前半部分循环移位即是最可能与原串不同的字符串排列,然后再将重新排列后的字符串重新组合,若字符串长度为奇数,那么还需要再加上中间的字符。最后将得到的字符串与原串进行比较,若相同,那么肯定不存在这种字符串,输出-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)