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;
    }
}


7 views0 comments

Recent Posts

See All

A string s is called good if there are no two different characters in s that have the same frequency. Given a string s, return the minimum number of characters you need to delete to make s good. The f

The numeric value of a lowercase character is defined as its position (1-indexed) in the alphabet, so the numeric value of a is 1, the numeric value of b is 2, the numeric value of c is 3, and so on.