Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.

 Key to solve: HashSet + two pointers in window's range method
    Idea:
    1. Maintain a window's range area by using two points: left & right <=s.length();
    2. check the String condition of each time in this Window's range
    Two cases determine:
        2.1: Normal case: right pointer move forward => right++;
        2.2: Duplicated case: left pointer move forward(=> left++) & remove it from HashSet
            until no more duplicated was found
    3. Do not forget to Maintain a maxCount length between max and range size of left and right
     Time complexity: O(2*N) => O(N) since both left, right point only scan once
     Space Complexity: O(N) size of HashSet


Check the coding in detail below: 

public class Solution {
    public int lengthOfLongestSubstring(String s) {
        if(s.length()==0 || s==null) return 0;
        HashSet set=new HashSet();
        int maxCount=0;
        int left=0;
        int right=0;
        while(right


你可能感兴趣的:(LeetCode,String+Array)