程式語言 - LeetCode - C++ - 395. Longest Substring with At Least K Repeating Characters



題目:


解答:

class Solution {
public:
    int longestSubstring(string s, int k) {
        if (s.size() < k) {
            return 0;
        }

        vector<int> cnt(26, 0);
        for (char c : s) {
            cnt[c - 'a'] += 1;
        }

        for (int i = 0; i < s.size(); ++i) {
            if (cnt[s[i] - 'a'] < k) {
                int l = longestSubstring(s.substr(0, i), k);
                int r = longestSubstring(s.substr(i + 1), k);
                return max(l, r);
            }
        }

        return s.size();
    }
};