Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public int lengthOfLongestSubstringKDistinct(String s, int k) {
- int n = s.length(), i = 0, re = 0;
- Map<Character, Integer> map = new HashMap<>();
- for(int j = 0; j < n; j++)
- {
- char ch = s.charAt(j);
- map.put(ch, map.getOrDefault(ch, 0) + 1);
- while(map.keySet().size() > k)
- {
- char rem = s.charAt(i++);
- map.put(rem, map.get(rem) - 1);
- if(map.get(rem) == 0) map.remove(rem);
- }
- re = Math.max(re, j + 1 - i);
- }
- return re;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement