题解:字符串DP
定义f[i][j]表示前i个字母以字母j结尾的最长子序列长度
对于前i个字母
x=s[i]-'a'
),然后开始枚举所有x−k≤j≤x+k更新f[i][x]=max(f[i][x],f[i−1][j]+1)
给定一个只含小写字母的字符串s , k阶完美子序列t的定义是:t是字符串s 的一个子序列.并且t中任意一个相邻的字符在字符表中距离相差不过k.现在塔子哥需要你求出最长的k阶完美子序列
说明:
1.字符串的子序列同样是一个字符串,并且子序列还满足:可以经由字符串删除某些字符(也可以不删除)但不改变剩余字符的顺序得到。
2.字符表的距离是不循环的,即a 和 z 的距离是25 而不是1
每行输入一个字符串s和一个整数k
∣s∣≤105,0≤k≤25
输出为整数n,代表字符串s的最长k阶完美字符串长度
输入
bcda 1
输出
3
说明:bcd是一个合法的最长序列,长度为3
输入
abbccd 0
输出
2
说明:bb/cc是一个合法的最长序列.长度为2
本题属于以下题库,请选择所需题库进行购买