Given a string, find the length of the longest substring without repeating characters.
Example 1:
Input: "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.
Example 2:
Input: "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.
Example 3:
Input: "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.
class Solution {
public int lengthOfLongestSubstring(String s) {
if(s.length() == 0) return 0;
HashMap<Character,Integer> map = new HashMap<>();
int length = 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);
length = Math.max(length, i - j + 1);
}
return length;
}
}