经典动态规划,定义dp[i][j]为考虑字符串前i个字母且以字符j结尾时能选到的最长子序列
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("avx,avx2,fma")
给定一个只含小写字母的字符串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
本题属于以下题库,请选择所需题库进行购买