leetcode 3. Longest Substring Without Repeating Characters
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 len = s.length();
if(s == null || len == 0) return 0;
HashSet<Character> set = new HashSet<>();
int res = 0;
for(int i = 0,j = 0; i< len; i++){
if(set.contains(s.charAt(i))){
while(s.charAt(j) != s.charAt(i)){
set.remove(s.charAt(j++));
}
set.remove(s.charAt(j++));
set.add(s.charAt(i));
}
else{
set.add(s.charAt(i));
res = Math.max(res, set.size());
}
}
return res;
}
}
页:
[1]