滑动窗口解决最小子串问题 leetcode3. 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 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;
    }

 

posted @ 2018-09-27 15:37  livalon1  阅读(122)  评论(0编辑  收藏  举报