由于字符串经过修改一定为回文串,且最多修改两次,所以原字符串位置i与对称位置n−i−1不一样的个数最多为2。所以统计一下需要改的位置个数,记为cnt.
1.当原字符串为回文串时(cnt=0),那么找到第一个不为'a'的位置和其对称位置,将他们都改成'a'。
2.当不同位置个数为1(cnt=1)时,又分为两种情况:
小美是一个热衷于算法竞赛的程序员,他最近在参加一场名为“回文字符串”的比赛。比赛规则是给定一个字符串,要求将其修改为一个回文字符串,所修改的字符位置最多只能有两个,并且要求修改后的字符串字典序最小。
小美在比赛中遇到了困难,不知道如何处理才能让修改后的字符串达到要求。于是他找到了你,希望你能帮助他解决问题,数据保证能在题目限制下形成回文字符串。
注:回文字符串:即一个字符串从前向后和从后向前是完全一致的字符串。例如字符串abcba,aaaa,acca都是回文字符串。字符串abcd,acea都不是回文字符串。
一行,一个字符串。字符串中仅由小写英文字符构成。
保证字符串不会是空字符串。
字符串长度介于[1,100000] 之间。
一行,一个在题目条件限制下所可以获得的字典序最小的回文字符串。
输入
acca
输出
aaaa
说明: 原来的字符串已经是回文字符串了。但它不是题目条件下可以取得的字典序最小的回文字符串。将第二个字符和第三个字符都改为a可以获得字典序最小的回文字符串。
输入
abcde
输出
abcba
说明 将de改为ba可以获得字典序最小的回文字符串。