Advertisement
veryinnocentboy

Longest Substring with At Most Two Distinct Characters

May 14th, 2021
584
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.70 KB | None | 0 0
  1. public int lengthOfLongestSubstringTwoDistinct(String s){
  2.     Map<Character, Integer> mymap = new HashMap<>();
  3.     int start =0, end = 0, count = 0, len = s.length();
  4.     int maxLen = 0;
  5.     while(end < len){
  6.         char c = s.charAt(end);
  7.         map.put(c, map.getOrDefault(c, 0) + 1);
  8.         if(map.get(c) == 1) count++:
  9.         end++
  10.         while(count > 2){
  11.             char q = s.charAt(start);
  12.             map.put(q, map.getOrDefault(q, 0)-1);
  13.             if(map.get(q)==0) count--; // as only way to achieve 0 is from 1 (that is subtracting 1 from 1 in earlier step can only create 0)
  14.             start++;
  15.         }
  16.         maxLen = Math.max(maxLen, end -start);
  17.     }
  18.     return maxLen;
  19. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement