340.至多包含K个不同字符的最长子串
class Solution {public int lengthOfLongestSubstringKDistinct(String s, int k) {int len = s.length();if(len <= k){return len;}//滑动窗口的左右指针int left = 0,right = 0;//定义一个哈希映射HashMap<Character,Integer> hashmap = new HashMap<Character,Integer>();int max_len = k;while(right < len){hashmap.put(s.charAt(right),right++);if(hashmap.size() == k + 1){int del_idx = Collections.min(hashmap.values());hashmap.remove(s.charAt(del_idx));left = del_idx + 1;}max_len = Math.max(max_len,right - left);}return max_len;}
}