【leedcode】0003. 无重复字符最长子串

简介: 【leedcode】0003. 无重复字符最长子串

【leedcode】0003. 无重复字符最长子串


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


   示例 1:

   输入: "abcabcbb"

   输出: 3  

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

   示例 2:

   输入: "bbbbb"

   输出: 1

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

   示例 3:

   输入: "pwwkew"

   输出: 3

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


请注意,你的答案必须是 子串的长度,"wke" 是一个子序列,不是子串长度。


方法一:

def maxSizeSubstring(s):
    res,cur,dic = 0,0,{}
    for idx in range(len(s)):
        if s[idx] in dic:
            cur = max(cur, dic[s[idx]] + 1)
        dic[s[idx]] = idx
        res = max(res, idx - cur + 1)      
    return res
sample = "abcabcbb","bbbbb","pwwkew","I am HannYang."
for s in sample:
    print(maxSizeSubstring(s))



方法二:


f40bcc72102e460297ea937c81fe2d9a.gif

def maxSizeSubstring2(s):
    res = 0
    for i in range(len(s)):
        for j in range(len(s),0,-1):
            if i>=j: continue
            t = s[i:j]
            size = len(t)
            if size==len(set(t)):
                if size>res:
                    res = size
    return res
sample = "abcabcbb","bbbbb","pwwkew","I am HannYang."
for s in sample:
    print(maxSizeSubstring2(s))


以上三种方法的运行结果都是:

3

1

3

5

其中,方法三只是把方法二改造成了一行代码的lambda表达式。

目录
相关文章
|
存储 Linux iOS开发
选择 MBR 还是 GPT?你需要了解的都在这里
磁盘分区表是一种存储在磁盘上的数据结构,用于存储关于磁盘分区的信息,包括分区的大小、位置和类型。MBR 和 GPT 是两种常见的磁盘分区表格式。GPT 格式较新,具有较多优势,包括: * 支持更大的磁盘容量。MBR 最大支持 2.2TB,而 GPT 支持高达 9.44ZB。 * 支持更多分区。MBR 最多支持 4 个主分区,而 GPT 支持 128 个主分区。 * 更高的安全性。GPT 使用 CRC 校验机制和备份分区表保护分区表数据的完整性,而 MBR 不使用。 MBR 是较旧的格式,但仍被广泛使用。它具有以下优势: * 与旧系统兼容。MBR 与所有版本的 Windows 和大多数版本
1081 1
选择 MBR 还是 GPT?你需要了解的都在这里
|
弹性计算 大数据 测试技术
阿里云服务器租用报价多少钱一年?2024年阿里云服务器价格表出炉!
在现今这个数字化高速发展的时代,云服务已逐渐演变成众多企业和个人进行数字化转型的核心基石。阿里云,作为国内云服务市场的佼佼者,不仅凭借其稳定且强大的服务器性能赢得了市场的广泛认可,还通过提供多样化的云服务产品和极具竞争力的价格策略,进一步巩固了其市场地位。那么,在这个数字化浪潮中,阿里云服务器的价格究竟如何呢?今天,就让我们一起深入探索阿里云最新的价格体系,为您揭示其背后的价值所在。对于轻量级应用场景,阿里云提供了2核2G3M轻量应用服务器,其年度费用仅为62元。这一价格定位,无疑为初创企业和个人开发者提供了一个低门槛、高性价比的云服务选择,助力他们在数字化道路上轻松起步。
720 1
|
监控 安全 搜索推荐
智慧校园定位系统:数据驱动的校园管理决策与服务创新
智慧校园定位系统是构建智能化校园的重要工具,它提供实时定位、智能导航、安全预警等功能,极大地提升了校园的管理效率和师生的校园生活体验。通过集成先进的信息技术,为师生创造一个更加安全、便捷、高效的学习与工作环境。
531 5
智慧校园定位系统:数据驱动的校园管理决策与服务创新
|
Web App开发 移动开发 前端开发
display: inline-block 可以在不同的浏览器中正常工作吗?
【10月更文挑战第27天】`display: inline-block`在现代浏览器中能够正常工作,但在旧版本浏览器中可能会存在兼容性问题。在实际的网页开发中,需要根据目标用户群体所使用的浏览器情况,合理地选择解决兼容性问题的方法,以确保页面在各种浏览器环境下都能够呈现出一致的布局效果。
|
运维 Java 程序员
《Docker技术革命:从虚拟机到容器化,全面解析Docker的原理与应用-上篇》(一)
《Docker技术革命:从虚拟机到容器化,全面解析Docker的原理与应用-上篇》(一)
255 0
|
弹性计算 数据可视化 Linux
云服务器 ECS产品使用问题之执行命令时出现 "command not found" ,该如何解决
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
存储 算法 Java
性能优化:Java垃圾回收机制深度解析 - 让你的应用飞起来!
Java垃圾回收自动管理内存,防止泄漏,提升性能。GC分为标记-清除、复制、标记-整理和分代收集等算法。JVM内存分为堆、方法区等区域。常见垃圾回收器有Serial、Parallel、CMS和G1。调优涉及选择合适的GC、调整内存大小和使用参数。了解和优化GC能提升应用性能。
|
数据可视化 前端开发 搜索推荐
ECharts 词云案例三:2024年阅读关键词
探索ECharts词云图进阶,使用蒙版创造个性化2024年阅读关键词云。预览图展示渐变色背景与随机色词汇。蒙版概念引入,通过HTML结构和JavaScript配置实现词云与图像蒙版结合。代码及依赖下载链接提供,展示五种创意蒙版效果,激发数据可视化的创新思维。
278 0
ECharts 词云案例三:2024年阅读关键词
|
JavaScript API
vite配置代理
vite配置代理
405 4
|
监控 物联网 Linux
python测试串口最大通信速率
【4月更文挑战第5天】
500 3

热门文章

最新文章