Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public int lengthOfLongestSubstringTwoDistinct(String s){
- Map<Character, Integer> mymap = new HashMap<>();
- int start =0, end = 0, count = 0, len = s.length();
- int maxLen = 0;
- while(end < len){
- char c = s.charAt(end);
- map.put(c, map.getOrDefault(c, 0) + 1);
- if(map.get(c) == 1) count++:
- end++
- while(count > 2){
- char q = s.charAt(start);
- map.put(q, map.getOrDefault(q, 0)-1);
- 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)
- start++;
- }
- maxLen = Math.max(maxLen, end -start);
- }
- return maxLen;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement