题解:AT_abc375_d [ABC375D] ABA
十分简单的计数题。
容易发现所谓长度为 \(3\) 的回文串其实就是要找两个相同的字符。所以我们不妨对字符串的每一位分别考虑,计算以这一位为中心的回文串的个数。
对于当前的这一位,我们枚举 \(26\) 个字母,计算每个字母作为回文串两端的元素,这一位为中间的元素时对答案产生的贡献。具体的,我们对每个字母分别维护一个从前往后和从后往前的前缀和,分别设为 \(sum\) 和 \(rsum\)。设当前为中间的这一位下标为 \(i\),由乘法原理易得字母 \(c\) 对 \(i\) 的贡献显然就是 \(sum_{c,i-1}\cdot rsum_{c,i+1}\)。
累加答案即可。