由于字符串经过修改一定为对称字符串,且最多修改两次,所以原字符串位置i与对称位置n−i−1不一样的个数最多为2。所以统计一下需要改的位置个数,记为cnt.
1.当原字符串为对称字符串时(cnt=0),那么找到第一个不为'a'的位置和其对称位置,将他们都改成'a'。
2.当不同位置个数为1(cnt=1)时,又分为两种情况:
小蓝在同步镜像数据时,需要将一段字符串调整为左右完全对称的格式(即正读与反读相同)。定义:对于一个长度为 n 的字符串 s,如果对于所有满足 0≤i<n 的整数 i,均有 s[i]=s[n−1−i],则称 s 为 对称字符串。
现在给定一个由小写英文字母构成的初始字符串。你拥有至多 2 次修改机会,每次可以任选一个位置,将其字符改为任意小写字母。你需要在不超过修改次数限制的前提下,将字符串变成一个对称字符串,并且使得最终得到的字符串在所有可行结果中字典序最小。请你输出这个字典序最小的对称字符串。
约束:字符串长度 n 满足 1≤n≤105,所有字符均为小写英文字母。题目保证输入数据一定存在满足限制的方案。
输入共一行,包含一个仅由小写英文字母组成的字符串。字符串长度满足 1≤n≤105。数据保证通过至多修改两个位置上的字符能够将该字符串变为对称字符串。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.