思路对了,但是不会写. 等差数列长度不是1就是2,所以不是一个字母就是俩字母,一开始写的时候直接枚举两个字母,然后让次数相乘.这样是不对的,比如abaabb,字母ab的个数应该是3+2+2,因该是每一个a后边b的个数然后相加. 正解:维护一个二位数组dp[i][j],表示位置后边,字符j的个数,然后枚举两个字符k和j,当位置i是字符k时,直接相加,当长度为1时,答案为x*(x-1)/2 #include<bits/stdc++.h> using namespace std; typedef l…