Mastery Points
0

Longest Substring Problem in dsa

Context & Logic

Finding the longest substring often refers to the 'Longest Substring Without Repeating Characters' problem, which is elegantly solved using the sliding window technique.

Example

function lengthOfLongestSubstring(s) {
    let set = new Set();
    let left = 0, maxLen = 0;
    for (let right = 0; right < s.length; right++) {
        while (set.has(s[right])) {
            set.delete(s[left++]);
        }
        set.add(s[right]);
        maxLen = Math.max(maxLen, right - left + 1);
    }
    return maxLen;
}

Step-by-Step Logic

1

Maintain a sliding window defined by 'left' and 'right' pointers.

2

Use a Set to keep track of unique characters in the window.

3

Expand the window by moving 'right'.

4

If a character is already in the set, move 'left' until it's removed.

5

Calculate the window size at each step and keep the maximum.

Complexity Metrics

Time Efficiency

O(n)

Memory Footprint

O(k) where k is the character set size