public int lengthOfLongestSubstring(String s) {
if (s == null || s.length() < 1)
return 0;
HashMap map = new HashMap();
int max = 0;
for (int i = 0,j=0; i < s.length(); i++) {
if(map.containsKey(s.charAt(i))){
j=Math.max(j, map.get(s.charAt(i)+1));
}
map.put(s.charAt(i), i);
max=Math.max(max, i+1-j);
}
return max;
}
public int lengthOfLongestSubstring_1(String s) {
if (s == null || s.length() < 1)
return 0;
char[] arr = s.toCharArray();
Set set = new HashSet();
set.add(arr[0]);
int p1 = 0, p2 = 1;
int tempNum = 1, res = 1;
while (p2 < s.length()) {
while (set.contains(arr[p2])) {
set.remove(arr[p1++]);
tempNum--;
}
set.add(arr[p2++]);
tempNum++;
if (tempNum > res)
res = tempNum;
}
return res;
}