程序可以计算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