Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Solution {
- public int lengthOfLongestSubstring(String s) {
- if (s.length() == 1) return 1;
- if (s.length() == 0) return 0;
- Set<Character> currentChars = new HashSet<Character>();
- int startOfSubString = 0;
- int endOfSubString = 1;
- int currentMax = 1;
- currentChars.add(s.charAt(startOfSubString));
- while ( ((s.length() - startOfSubString) > currentMax) && (startOfSubString < s.length()) && (endOfSubString < s.length()) ) {
- Character charToCheck = s.charAt(endOfSubString);
- if (!currentChars.contains(charToCheck)) {
- currentChars.add(charToCheck);
- // If our set size has exceeded our currentMax, update
- if (currentChars.size() > currentMax) currentMax = currentChars.size();
- endOfSubString++;
- } else {
- // We have a non-unique character. Move substring start up by 1 and start over
- currentChars.clear();
- currentChars.add(s.charAt(++startOfSubString));
- endOfSubString = startOfSubString + 1;
- }
- }
- return currentMax;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement