该程序查找要添加的最少字符数,以使其在Python中成为回文
假设我们有一个字符串s,我们必须找到要在s之后插入的最小字符数,以使其成为回文。
因此,如果输入类似于s=“mad”,则输出将为2,因为我们可以添加“am”使其成为“madam”。
为了解决这个问题,我们将遵循以下步骤-
b:=256,m:=10^9+7
s:=一个列表,通过取s中每个i的(i的ASCII)−97之差
r:=s的最后一个元素,l:=s的最后一个元素
n:=s的大小
res:=n−1
p:=b
对于范围n−2至0的i,减1,
RES:=我
r:=r+s[i]*p,r:=rmodm
l:=l*b,l:=l+s[i]
l:=lmodm
p:=p*b,p:=pmodm
如果l与r相同,则
返回资源
让我们看下面的实现以更好地理解-
示例
class Solution: def solve(self, s): b = 256 m = 10 ** 9 + 7 s = list(ord(i) − 97 for i in s) r = l = s[−1] n = len(s) res = n − 1 p = b for i in range(n − 2, −1, −1): r += s[i] * p r %= m l *= b l += s[i] l %= m p *= b p %= m if l == r: res = i return res ob = Solution() s = "mad" print(ob.solve(s))
输入值
"mad"输出结果
2