LC 3 Longest Substring without repeating characters

Alen Alex · January 7, 2024

LeetCode Link: Longest Substring without repeating characters
Language: C#

Problem Statement

Given a string s, find the length of the longest substring without repeating characters.

Examples

Example 1:

Input: s = “abcabcbb” Output: 3 Explanation: The answer is “abc”, with the length of 3. Example 2:

Input: s = “bbbbb” Output: 1 Explanation: The answer is “b”, with the length of 1. Example 3:

Input: s = “pwwkew” Output: 3 Explanation: The answer is “wke”, with the length of 3. Notice that the answer must be a substring, “pwke” is a subsequence and not a substring.

Constraints

  • 0 <= s.length <= 5 * 104
  • s consists of English letters, digits, symbols and spaces.

Solution

public class Solution 
{
    public int LengthOfLongestSubstring(string s) 
    {
        var d = new HashSet<char>();
        var max = 1;
        var ap = 0;
        var bp = 0;
        int count = 0;
        
        if (s.Length < 2)
        {
            return s.Length;
        }

        while (bp < s.Length)
        {
            if(!d.Contains(s[bp]))
            {                
                d.Add(s[bp]);
                max = Math.Max(max, bp-ap+1);
                bp++;
                continue;
            }
            d.Remove(s[ap]);
            ap++;
        }
        return max;
    }
}

Complexity

Time Complexity: O(N)
Space Complexity: O(N)

Twitter, Facebook