zoukankan      html  css  js  c++  java
  • 48-最长不含重复字符的子字符串

    请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。

    示例 1:

    输入: "abcabcbb"
    输出: 3 
    解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
    

    示例 2:

    输入: "bbbbb"
    输出: 1
    解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
    

    示例 3:

    输入: "pwwkew"
    输出: 3
    解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
         请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
    

    提示:

    • s.length <= 40000
    class Solution {
        public int lengthOfLongestSubstring(String s) {
            //滑动窗口
            int res = 0;
            int start = 0,end = 0;
            HashMap<Character,Integer> map = new HashMap<>();
            for(;end < s.length();end++){
                char c = s.charAt(end);
                if(map.containsKey(c)){
                    start = Math.max(start,map.get(c) + 1);
                }
                res = Math.max(end - start + 1,res);
                map.put(c,end);
            }
            return res;
        }
    }
    一回生,二回熟
  • 相关阅读:
    qt动态加载UI文件
    Qt常见控件和操作
    MySQL
    tomcat
    linux iptables基础
    linux 网络基础
    linux CA及OpenSSL学习
    k8s 访问控制
    k8s 存储卷
    docker 安装部署
  • 原文地址:https://www.cnblogs.com/zzytxl/p/12602063.html
Copyright © 2011-2022 走看看