程序可以计算Python中回文子字符串的数量
假设我们有一个字符串s,我们必须找到s中回文子字符串的数量。
因此,如果输入类似于s=“level”,则输出将为7,因为回文子字符串为:[“l”,“e”,“v”,“e”,“l”,“eve”,“水平”]
为了解决这个问题,我们将遵循以下步骤-
定义一个函数check_palindrome()。这将需要字符串,左,右
回答:=0
而当左>=0且右<s的大小时,执行
返回ans
回答:=回答+1
左:=左-1
右:=右+1
如果s[left]与s[right]相同,则
除此以外,
返回ans
从主要方法中,执行以下操作-
回答:=0
对于char_index范围从0到s的大小,执行
ans:=ans+check_palindrome(s,char_index-1,char_index+1)
ans:=ans+check_palindrome(s,char_index,char_index+1)
回报(ans)+s的大小
让我们看下面的实现以更好地理解-
示例
class Solution: def solve(self, s): def check_palindrome(string, left, right): ans = 0 while left >= 0 and right < len(s): if s[left] == s[right]: ans += 1 left -= 1 right += 1 else: return ans return ans ans = 0 for char_index in range(len(s)): ans += check_palindrome(s, char_index - 1, char_index + 1) ans += check_palindrome(s, char_index, char_index + 1) return (ans) + len(s) ob = Solution()print(ob.solve("level"))
输入值
"level"
输出结果
7