[题解] String II

考察知识点:字符串操作,枚举

  • 枚举答案子序列的字母
  • 判断尽可能多的将其他字母变换为该字母的最长子序列的长度
  • 在这些可能的答案中取最大值

时间复杂度

参考代码:

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;
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务