给定一个长度为 n 的字符串 s ,找出最多包含 k 种不同字符的最长连续子串的长度。 数据范围: , 字符串中仅包含小写英文字母

区块链毕设网qklbishe.com为您提供问题的解答

给定一个长度为 n 的字符串 s ,找出最多包含 k 种不同字符的最长连续子串的长度。
数据范围: 给定一个长度为 n 的字符串 s ,找出最多包含 k 种不同字符的最长连续子串的长度。          数据范围:  , 字符串中仅包含小写英文字母 , 字符串中仅包含小写英文字母

//c++解答
class Solution {

public:
    int longestSubstring(string s, int k) {
        int n = s.size();
        unordered_map<char, int> h;
        int ans = 0, i = 0, j = 0, cnt = 0;
        while(j < n){
            if(h[s[j]] == 0){
                ++cnt;
            }
            ++h[s[j]];
            ++j;
            while(cnt > k){
                if(h[s[i]] == 1){
                    –cnt;
                }
                –h[s[i]];
                ++i;
            }
            ans = max(ans, j-i);
        }
        return ans;
    }
};

12:47

以上就是关于问题给定一个长度为 n 的字符串 s ,找出最多包含 k 种不同字符的最长连续子串的长度。
数据范围: , 字符串中仅包含小写英文字母的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 给定一个长度为 n 的字符串 s ,找出最多包含 k 种不同字符的最长连续子串的长度。 数据范围: , 字符串中仅包含小写英文字母