假设我们有一串小写字符(都是 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