在Python中以排序形式查找字符串的回文子字符串的计数

假设我们有一串小写字符(都是 ASCII 字符),我们必须找到给定字符串的所有不同的连续回文子串。

因此,如果输入类似于“level”,那么输出将为 7,因为有七个子字符串 ['level', 'eve', 'l', 'e', 'v', 'e', 'l' ]。

在线示例

让我们看看以下实现以获得更好的理解 -

N = 26
def all_palindrome_substr_count(str):
   n = len (str)
   sum = 0
   my_map = [0] * N
   for i in range(n):
      my_map[ord(str[i]) - ord('a')] += 1
  for i in range(N) :
      if (my_map[i]):
         sum += (my_map[i] * (my_map[i] + 1) // 2)
   return sum
str = "level"
print (all_palindrome_substr_count(str))

输入

"level"
输出结果
7

猜你喜欢