提交地址:https://nanti.jisuanke.com/t/41389
题目:
给出一个字符串,求字符串中所有回文串的不同字母数之和
解题思路:
建立回文树,,表示在节点cur表示的最长回文子串左右两边加上字符'a'+c构成了新的最长回文子串,对应节点编号为now。
在统计每个最长回文子串内的不同字母数时,参照上图的回文树,从0/1节点向下走一条路径,比如0->6,那么以s[6-1]为结尾的最长回文子串的不同字母数为1,如0->6->7,那么以s[7-1]为结尾的最长回文子串的不同字母数为2。一个最长回文子串中的最大字母数为26,可以用二进制来统计。
具体的统计方法(在建树时完成统计):