Untitled

 avatar
unknown
plain_text
2 years ago
934 B
7
Indexable
class Solution {
        public static int lengthOfLongestSubstring(String s) {
        int n = s.length();
        int maxLength = 0;

        // Map to store the last index of each character in the string
        HashMap<Character, Integer> charIndexMap = new HashMap<>();

        // Start pointer of the sliding window
        int start = 0;

        for (int end = 0; end < n; end++) {
            char currentChar = s.charAt(end);

            // If the character is already in the substring, update the start pointer
            if (charIndexMap.containsKey(currentChar)) {
                start = Math.max(charIndexMap.get(currentChar) + 1, start);
            }

            // Update the maximum length
            maxLength = Math.max(maxLength, end - start + 1);

            // Update the last index of the current character
            charIndexMap.put(currentChar, end);
        }

        return maxLength;
    }
}
Editor is loading...