c 网站开发实例教学,长沙手机网站设计,网站域名过期未续费怎么办,哪里有做网站排名优化1. 题目
给定字符串S#xff0c;找到最多有k个不同字符的最长子串T。
样例 1:
输入: S eceba 并且 k 3
输出: 4
解释: T eceb样例 2:
输入: S WORLD 并且 k 4
输出: 4
解释: T WORL 或 ORLD挑战
O(n) 时…1. 题目
给定字符串S找到最多有k个不同字符的最长子串T。
样例 1:
输入: S eceba 并且 k 3
输出: 4
解释: T eceb样例 2:
输入: S WORLD 并且 k 4
输出: 4
解释: T WORL 或 ORLD挑战
O(n) 时间复杂度2. 解题
class Solution {
public:int lengthOfLongestSubstringKDistinct(string s, int k) {// write your code hereint i 0, j 0, MAX 0, n s.size(), count 0;unordered_mapchar,int m;char ch;for( ; j n; j) {ch s[j];if (m[ch] 0) //右端点有新的字符count;m[ch];if(count k) //字符种类超了{ch s[i];m[ch]--;if(m[ch] 0) count--;//如果为0种类减少}MAX j-i1;//MAX只增不减是最后的答案}return MAX;}
};100% 数据通过测试 总耗时 302 ms 您的提交打败了 41.40% 的提交!