题目内容
给定一个只含小写字母的字符串s , k阶完美子序列t的定义是:t是字符串s 的一个子序列.并且t中任意一个相邻的字符在字符表中距离相差不过k.现在塔子哥需要你求出最长的k阶完美子序列
说明:
题解:字符串DP
定义f[i][j]表示前i个字母以字母j结尾的最长子序列长度
对于前i个字母
- 如果不选择第i个字母,则对于任意0≤j≤2,都有f[i][j]=f[i−1][j]
- 如果选择第i个字母,先把当前字母映射到[0,25](
x=s[i]-'a'
),然后开始枚举所有x−k≤j≤x+k
更新f[i][x]=max(f[i][x],f[i−1][j]+1)