会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员,或
购买
该题目所属题库
,可解锁完整内容。
经典动态规划,定义dp[i][j]为考虑字符串前i个字母且以字符j结尾时能选到的最长子序列
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("avx,avx2,fma")
P1142.2023.4.2-研发岗-第一题-最长k阶完美子序列
题目内容
给定一个只含小写字母的字符串s , k阶完美子序列t的定义是:t是字符串s 的一个子序列.并且t中任意一个相邻的字符在字符表中距离相差不过k.现在塔子哥需要你求出最长的k阶完美子序列
说明:
1.字符串的子序列同样是一个字符串,并且子序列还满足:可以经由字符串删除某些字符(也可以不删除)但不改变剩余字符的顺序得到。
2.字符表的距离是不循环的,即a 和 z 的距离是25 而不是1
输入描述
每行输入一个字符串s和一个整数k
∣s∣≤105,0≤k≤25
输出描述
输出为整数n,代表字符串s的最长k阶完美字符串长度
示例1
输入
bcda 1
输出
3
说明:bcd是一个合法的最长序列,长度为3
示例2
输入
abbccd 0
输出
2
说明:bb/cc是一个合法的最长序列.长度为2