假设我们有一个字符串s,我们必须找到通过修剪s的左右两侧来获得回文的方法。
因此,如果输入类似于s =“ momo”,则输出将为6,因为您可以获得[“ mom”,“ omo”,“ o”,“ o”,“ m”,“ m”,“ o“)
为了解决这个问题,我们将遵循以下步骤-
定义一个函数expand()。这需要i,j,s
c:= 0
当i> = 0且j <s和s [i]的大小与s [j]相同时,
i:= i − 1,j:= j + 1
c:= c + 1
返回c
在主要方法中,执行以下操作
c:= 0
对于0到s大小的范围内的i,执行
c:= c + expand(i,i,s)
c:= c + expand(i,i + 1,s)
返回c
让我们看下面的实现以更好地理解-
def expand(i, j, s): c = 0 while i >= 0 and j < len(s) and s[i] == s[j]: i −= 1 j += 1 c += 1 return c class Solution: def solve(self, s): c = 0 for i in range(len(s)): c += expand(i, i, s) c += expand(i, i + 1, s) return c ob = Solution() s = "momo" print(ob.solve(s))
"momo"
输出结果
6