塔子哥是一个热衷于算法竞赛的程序员,他最近在参加一场名为“回文字符串”的比赛。比赛规则是给定一个字符串,要求将其修改为一个回文字符串,所修改的字符位置最多只能有两个,并且要求修改后的字符串字典序最小。
塔子哥在比赛中遇到了困难,不知道如何处理才能让修改后的字符串达到要求。于是他找到了你,希望你能帮助他解决问题,数据保证能在题目限制下形成回文字符串。
由于字符串经过修改一定为回文串,且最多修改两次,所以原字符串位置i与对称位置n−i−1不一样的个数最多为2。所以统计一下需要改的位置个数,记为cnt.
1.当原字符串为回文串时(cnt=0),那么找到第一个不为'a'的位置和其对称位置,将他们都改成'a'。
2.当不同位置个数为1(cnt=1)时,又分为两种情况: