给定一个长度为 n 的字符串 s ,找出最多包含 k 种不同字符的最长连续子串的长度。 数据范围: , 字符串中仅包含小写英文字母
区块链毕设网qklbishe.com为您提供问题的解答
给定一个长度为 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链游项目方科学家脚本开发培训