Longest Substring Without Repeating Characters

In this article we will learn about LeetCode Third question Longest Substring Without Repeating Characters in detail with optimized solution with Example.


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


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 * 10<sup>4</sup>
  • s consists of English letters, digits, symbols and spaces.

Java Example

class Solution { public int lengthOfLongestSubstring(String s) { int l=0,r=0; Set<Character> seen = new HashSet(); int max=0; while(r< s.length()){ char c= s.charAt(r); if(seen.add(c)){ max= Math.max(max,r-l+1); r++; }else{ while(s.charAt(l)!=c){ seen.remove(s.charAt(l)); l++; } seen.remove(c); l++; } } return max; } } // 2023

Complexity :

Time complexity: O(N);
Space Complexity: O(1);


I hope you like this Amazing Longest Substring article.🙂


Also Read :