考察知识点:字符串操作,枚举
- 枚举答案子序列的字母
- 判断尽可能多的将其他字母变换为该字母的最长子序列的长度
- 在这些可能的答案中取最大值
时间复杂度
参考代码:
class Solution {
public:
int string2(int k, string s) {
int len = s.length(), ret = 0;
for (int key = 1; key <= 26; ++key) {
int ans = 0, tmp = k;
for (int dis = 0; dis < 26; ++dis) {
for (int i = 0; i < len; ++i) {
if (abs(s[i] - ('a' + key - 1)) == dis && tmp >= dis) {
++ans, tmp -= dis;
}
}
}
ret = max(ret, ans);
}
return ret;
}
}; 
京公网安备 11010502036488号