Advertisement
chmilar

LongestSubstring - 1

Sep 14th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.21 KB | None | 0 0
  1. public class Solution {
  2.     public int lengthOfLongestSubstring(String s) {
  3.         if (s.length() == 1) return 1;
  4.         if (s.length() == 0) return 0;
  5.  
  6.         Set<Character> currentChars = new HashSet<Character>();
  7.         int startOfSubString = 0;
  8.         int endOfSubString = 1;
  9.         int currentMax = 1;
  10.  
  11.         currentChars.add(s.charAt(startOfSubString));
  12.         while ( ((s.length() - startOfSubString) > currentMax) && (startOfSubString < s.length()) && (endOfSubString < s.length()) ) {
  13.             Character charToCheck = s.charAt(endOfSubString);
  14.  
  15.             if (!currentChars.contains(charToCheck)) {
  16.                 currentChars.add(charToCheck);
  17.                 // If our set size has exceeded our currentMax, update
  18.                 if (currentChars.size() > currentMax) currentMax = currentChars.size();
  19.                 endOfSubString++;
  20.             } else {
  21.                 // We have a non-unique character. Move substring start up by 1 and start over
  22.                 currentChars.clear();
  23.                 currentChars.add(s.charAt(++startOfSubString));
  24.                 endOfSubString = startOfSubString + 1;
  25.             }
  26.         }
  27.  
  28.         return currentMax;
  29.  
  30.     }
  31.    
  32.    
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement