Sunday, August 21, 2016

3. Longest Substring Without Repeating Characters


public class Solution {

 public static int lengthOfLongestSubstring(String s) {

        if (s == null) {

            return 0;

        }

           

        char[] chars = s.toCharArray();

        int longestSoFar = 0;


        HashMap<Character, Integer> numToIdx = new HashMap<Character, Integer>();


        for (int i = 0; i < chars.length; i++) {

            if (!numToIdx.containsKey(chars[i])) {

                numToIdx.put(chars[i], i);

            } else {

                longestSoFar = Math.max(longestSoFar, numToIdx.size());

                i = numToIdx.get(chars[i]);

                numToIdx.clear();

            }

        }


        return Math.max(longestSoFar, numToIdx.size());

    }

}

No comments:

Post a Comment