public int lengthOfLongestSubstring(String s) { if(s.length()==0||s==null){ return 0; } int len=0; HashSet<Character> hashSet = new HashSet<Character>(); for(int i=0,j=0;i<s.length();i++){ /*if(hashSet.contains(s.charAt(i))){ hashSet.remove(s.charAt(j++)); hashSet.add(s.charAt(i)); }else{ hashSet.add(s.charAt(i)); len = Math.max(hashSet.size(),len); }*/ while(hashSet.contains(s.charAt(i))){ hashSet.remove(s.charAt(j++)); //hashSet.add(s.charAt(i)); } hashSet.add(s.charAt(i)); len = Math.max(hashSet.size(),len); } return len; }