无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。

示例 1:

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

示例 2:

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

示例 3:

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

代码实现:

复制代码
class Solution {
    public int lengthOfLongestSubstring(String s) {
        int maxSize = 0;
        int [] dict = new int[256]; //记录ASCII 码字符出现的位置,以字符作为下标
        int base = 0;
        int key = 0;
        int i=0;
        while(key < s.length()){
            i = s.charAt(key);
            if(dict[i] > base)
                base = dict[i];
            dict[i] = key+1; //以1作为起始位置,下标加1
            maxSize = (maxSize>key-base+1)?maxSize:key-base+1;
            key++;
        }
        return maxSize;
    }
}

测试结果:

相关推荐
User_芊芊君子1 分钟前
Java与C语言核心差异:从指针到内存管理的全面剖析
java·c语言·开发语言
洛小豆10 分钟前
Java 中 JSON 字段不固定怎么搞序列化?用好这两个注解就够了!
java·spring boot·后端
小比卡丘13 分钟前
【C++初阶】第15课—模版进阶
android·java·c++
silence25017 分钟前
Maven 项目中引入本地 JAR 包
java·maven·jar
你是狒狒吗6 小时前
瑞吉外卖-分页功能开发中的两个问题
java
Leaf吧6 小时前
java 设计模式 策略模式
java·设计模式·策略模式
夏旭泽7 小时前
SSM框架
java·spring
码起来呗8 小时前
基于SpringBoot的中华诗词文化分享平台-项目分享
java·spring boot·后端
半青年8 小时前
数据结构之哈希表的原理和应用:从理论到实践的全面解析
java·c语言·数据结构·c++·python·哈希算法
Freeking10248 小时前
【Spring】依赖注入的方式:构造方法、setter注入、字段注入
java·后端·spring