top of page
Search

Longest Substring Without Repeating Characters

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. 

Example 4:

Input: s = "" Output: 0 

Constraints:

  • 0 <= s.length <= 5 * 104

  • s consists of English letters, digits, symbols and spaces.

Solution:


class Solution {
    public int lengthOfLongestSubstring(String s) {
        Set<Character> set = new HashSet<Character>();
        int i=0, j=0, ans=0;
        while(j<s.length())
        {
         if(!set.contains(s.charAt(j)))
        {
            set.add(s.charAt(j));
            j++;
            ans=Math.max(ans,j-i);
        }
        else
        {
            set.remove(s.charAt(i));
            i++;
        }
        }
        return ans;
    }
}

11 views0 comments

Recent Posts

See All

Comments


bottom of page