该程序查找通过修剪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