Provide Best Programming Tutorials

## [LeetCode] 3. Longest Substring Without Repeating

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.
Note that the answer must be a substring, `"pwke"` is a subsequence and not a substring.```
```class Solution {
public int lengthOfLongestSubstring(String s) {
int n = s.length(), ans = 0;
Map<Character,Integer> map =new HashMap<>();
for(int j=0,i=0;j<n;j++){
if(map.containsKey(s.charAt(j))){
i = Math.max(map.get(s.charAt(j)),i);
}
ans = Math.max(ans,j-i+1);
map.put(s.charAt(j),j+1);
}
return ans;
}
}```

Runtime: 7 ms, faster than 82.37% of Java online submissions for Longest Substring Without Repeating Characters.

Memory Usage: 36 MB, less than 100.00% of Java online submissions for Longest Substring Without Repeating Characters.