该程序查找通过修剪Python中的字符串可以产生的回文数
假设我们有一个字符串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