问题描述:
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 left = 0,right = 0,res = 0; HashSet<Character> m = new HashSet<>(); while (right<s.length()){ if (!m.contains(s.charAt(right))){ m.add(s.charAt(right++)); res = Math.max(res,m.size()); }else { m.remove(s.charAt(left)); left++; } } return res; }