该程序查找要添加的最少字符数,以使其在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