美文网首页
无重复字符的最长子串

无重复字符的最长子串

作者: shiguangfeixu | 来源:发表于2021-03-14 23:35 被阅读0次

    Algorithm

    3. Longest Substring Without Repeating Characters

    Description

    Given a string s, find the length of the longest substring without repeating characters.

    Example 1:

    Input: s = "abcabcbb"
    Output: 3
    Explanation: The answer is "abc", with the length of 3.
    

    Example 2:

    Input: s = "bbbbb"
    Output: 1
    Explanation: The answer is "b", with the length of 1.
    

    Example 3:

    Input: s = "pwwkew"
    Output: 3
    Explanation: The answer is "wke", with the length of 3.
    Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.
    

    Example 4:

    Input: s = ""
    Output: 0
    

    Constraints:

    • 0 <= s.length <= 5 * 104
    • s consists of English letters, digits, symbols and spaces.

    Solution

    class Solution {
        public int lengthOfLongestSubstring(String s) {
            if(s==null||s.length()==0){
                return 0;
            }
            int max = 0;
            Map<Character,Integer> map = new HashMap<>();
            for(int i=0,j=0;i<s.length();i++){
                if(map.containsKey(s.charAt(i))){
                    j = Math.max(j, map.get(s.charAt(i))+1);
                }
                map.put(s.charAt(i), i);
                max = Math.max(max, i-j+1);
            }
            return max;
        }
    }
    

    Code

    3. Longest Substring Without Repeating Characters

    相关文章

      网友评论

          本文标题:无重复字符的最长子串

          本文链接:https://www.haomeiwen.com/subject/gokhcltx.html