用solve(l, r, prefix)代表区间l开始r结束.带了prefix个前缀str[l](即l前面的串化简完压缩成prefix-1个str[l],加上str[l]共有prefix个)的最大值. 每层可以选择: 1.直接“提现”,把起始位和前面的“存款”直接提出来,再计算l+1-r区间的值: 2.继续“存款”,枚举和str[l]相同的位置,把中间先合并了然后删了,把prefix+1,即把枚举的这位和之前的存款粘在一起,然后计算i-r的值,更新ans. 乍一想会觉得每次只把两个粘在一起这行吗…