|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- 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;
- }
-
- }
复制代码 |
|