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

    一、题目描述

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

    示例 1:

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

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

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

    二、题目难度:中等

    三、题解

    方法一:使用一个set来维护当前不重复的字符

    class Solution {
        public int lengthOfLongestSubstring(String s) {
            int n = s.length();
            int left = 0;
            int right = 0;
            Set<Character> set = newLinkedHashSet<>();
    int res = 0;
            while(right < n){
                char c = s.charAt(right);
                while(set.contains(c)){
                    set.remove(s.charAt(left++));
                }
                set.add(c);
                right++;
                res = Math.max(res,right - left);
            }
            return res;
        }
    }

  • 相关阅读:
    百度指数感想
    冲刺贡献分
    冲刺三
    通过myEclipse创建hibernate的实体类
    并发处理
    数据库设计原则(转载)
    Extjs学习
    关于oracle存储过程需要注意的问题
    oracle存储过程
    十大编程算法
  • 原文地址:https://www.cnblogs.com/ttzz/p/14546480.html
Copyright © 2011-2022 走看看