算法题——给定一个字符串 s ,请你找出其中不含有重复字符的最长子串 的长度
给定一个字符串 s ,请你找出其中不含有重复字符的最长子串 的长度
示例 1:
输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:
输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:
输入: s = “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是子串的长度,“pwke” 是一个子序列,不是子串。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
采用滑动窗口法
分析:
'''
i=0
j=0
max=0abcabcbb
ij{a:1b:1
}max=
return max'''
代码实现
class Solution(object):def lengthLongest(self, s):# 定义左右指针left = 0right = 0# 定义最大值max = 0# 定义字典,存储当前字符串window = dict()# 当右指针滑到头时,结束循环while right < len(s):# right指向的字符串位置current_char = s[right] # 第一次:a# .setdefault()# 如果键不存在字典中,将会添加键并将值设为默认值0window.setdefault(current_char, 0)window[current_char] += 1 # 相当于把a定义成1# 往后走1位right += 1# 窗口中有重复的字符串时缩小窗口while window[current_char] > 1:left_char = s[left]# i往右移动1位left += 1# 更新字典中current_char的数量window[left_char] -= 1# 临时获取字符串的长度window_size = right - leftif window_size > max:max = window_sizereturn maxs = "pwwkew"solution = Solution()
res = solution.lengthLongest(s)
print(res)
相关文章:
算法题——给定一个字符串 s ,请你找出其中不含有重复字符的最长子串 的长度
给定一个字符串 s ,请你找出其中不含有重复字符的最长子串 的长度 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”&am…...
机器学习中的数学原理——F值与交叉验证
通过这篇博客,你将清晰的明白什么是F值、交叉验证。这个专栏名为白话机器学习中数学学习笔记,主要是用来分享一下我在 机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私信或者评论区留言࿰…...
vue.js介绍
个人名片: 😊作者简介:一名大一在校生,web前端开发专业 🤡 个人主页:python学不会123 🐼座右铭:懒惰受到的惩罚不仅仅是自己的失败,还有别人的成功。 🎅**学习…...
【设计模式】1、设计模式七大原则
目录一、单一职责二、接口隔离三、依赖倒置(倒转)四、里氏替换五、迪米特法则(Law of Demeter)六、开闭七、合成复用一、单一职责 类(或方法)功能的专一性。一个类(或方法)不应该承担…...
【前端老赵的CSS简明教程】10-1 CSS预处理器和使用方法
大家好,欢迎来到本期前端课程。我是前端老赵,今天的课程将讲解CSS预处理器的概念和使用方法,希望能够帮助大家更好地进行前端开发。 CSS预处理器是什么? CSS预处理器是一种将类似CSS的语言转换为CSS的工具。它们提供了许多额外的功能,如变量、嵌套、混入、函数等等。这些…...
BFC详解
1. 引言 在前端的布局手段中,一直有这么一个知识点,很多前端开发者都知道有它的存在,但是很多人也仅仅是知道它的存在而已,对它的作用也只是将将说得出来,可是却没办法说得非常的清晰。这个知识点,就是BFC…...
C++:哈希结构(内含unordered_set和unordered_map实现)
unordered系列关联式容器 在C98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到$log_2 N$,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好 的查询是ÿ…...
Java实现调用第三方相关接口(附详细思路)
目录1.0.简单版2.0.升级版2-1.call.timeout()怎么传入新的超时值2-2.timeout(10, TimeUnit.SECONDS)两个参数的意思,具体含义3.0.进阶版3-1.java.net.SocketTimeoutException: 超时如何解决4.0.终极版1.0.简单版 以下是一个使用 Java 实际请求“第三方”的简单示例代…...
基础数据结构:单链表
今天懒洋洋学习了关于基础数据结构有关单链表的相关操作,懒洋洋来这温习一下。一:单链表的定义链表定义:用链式存储的线性表统称为链表,即逻辑结构上连续,物理结构上不连续。链表分类:单链表、双链表、循环链表、静态链…...
基于51单片机的智能计算器Protues仿真设计
目录 一、设计背景 二、实现功能 三、硬件设计 3.1 总体硬件设计 3.2 键盘电路的设计 3.3 显示电路的设计 四、仿真演示 五、源程序 一、设计背景 随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展&am…...
Pandas数据分析实战练习
Pandas数据分析实战练习 文章目录 Pandas数据分析实战练习一、读取Excel文件中的数据1、读取工号、姓名、时段、交易额这四列数据,使用默认索引,输出前10行数据2、读取第一个worksheet中所有列,跳过第1、3、5行,指定下标为1的列中数据为DataFrame的行索引标签二、筛选符合特…...
C++ 继承下(二篇文章学习继承所有知识点)
5.继承与友元友元关系不能继承,也就是说基类友元不能访问子类私有和保护成员 //验证友元不能继承 class B {friend void Print(); public:B(int b): _b(b){cout << "B()" << endl;}protected:int _b; };class D : public B { public:D(int b,…...
【C++】C++11新特性——类的改进|lambda表达式
文章目录一、类的改进1.1 默认生成1.2 移动构造函数1.3 移动赋值重载函数1.4 成员变量缺省值1.5 强制生成默认函数的关键字default1.6 禁止生成默认函数的关键字delete1.6.1 C98防拷贝1.6.1 C11防拷贝二、lambda表达式2.1 对比2.2 lambda表达式语法2.3 捕捉列表2.4 函数对象与l…...
C语言进阶(37) | 程序环境和预处理
目录 1.程序的翻译环境和执行环境 2.详解编译链接 2.1 翻译环境 2.2 编译本身也分为几个阶段: 2.3 运行环境 3.预处理详解 3.1预定符号 3.2 #define 3.3 #undef 3.4 命令行定义 3.5 条件编译 3.6 文件包含 了解重点: 程序的翻译环境程序的执行环境详解: C语言程…...
Golang每日一练(leetDay0005)
目录 13. 罗马数字转整数 Roman to Integer ★ 14. 最长公共前缀 Longest Common Prefix ★ 15. 三数之和 3Sum ★★★ 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 13. 罗马数字转…...
occt_modeling_data(一)——拓扑
下面是我基于opencascade英文文档中关于occt_modeling_data中Topology部分进行的翻译,英文好的还是建议直接看文档,部分我不肯定的地方我会附上英文原句。如发现有错误欢迎评论区留言。 OCCT Topolog允许用户访问和操纵物体的数据,且不需要处…...
【AcWing】蓝桥杯备赛-深度优先搜索-dfs(3)
目录 写在前面: 题目:93. 递归实现组合型枚举 - AcWing题库 读题: 输入格式: 输出格式: 数据范围: 输入样例: 输出样例: 解题思路: 代码: AC &…...
宇宙最强-GPT-4 横空出世:最先进、更安全、更有用
文章目录前言一、准确性提升1.创造力2.视觉输入3.更长的上下文二、相比于ChatGPT有哪些提升1.GPT-4 的高级推理能力超越了 ChatGPT2.GPT-4 在多种测试考试中均优于 ChatGPT。三、研究团队在GPT-4模型都做了哪些改善1.遵循 GPT、GPT-2 和 GPT-3 的研究路径2.我们花了 6 个月的时…...
HashMap的实际开发使用
目 录 前言 一、HashMap是什么? 二、使用步骤 1.解析一下它实现的原理 编辑 2.实际开发使用 总结 前言 本章,只是大概记录一下hashMap的简单使用方法,以及理清一下hashMap的put方法的原理,以及get方法的原理。 一、Has…...
OpenCV入门(十三)快速学会OpenCV 12 图像梯度
OpenCV入门(十三)快速学会OpenCV 12 图像梯度1.Sobel算子1.1 计算x1.2 计算y1.3 计算xy2.Scharr算子2.1 计算x2.2 计算y2.3 计算xy3.Laplacian算子4.总结图像梯度计算的是图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯…...
别再纠结剪胀角了!用Abaqus CAE五分钟搞定库伦摩尔模型的材料卡设置(含黏土/砂土参数模板)
别再纠结剪胀角了!用Abaqus CAE五分钟搞定库伦摩尔模型的材料卡设置(含黏土/砂土参数模板) 岩土工程仿真中,材料参数设置往往是新手的第一道门槛。当你在Abaqus中面对十几个输入框时,是否也曾困惑:摩擦角和…...
HC32F460移植指南:除了代码,你还需要搞定Keil、J-Flash和驱动库这三大件
HC32F460开发环境搭建实战:从工具链配置到驱动库迁移 第一次拿到华大HC32F460开发板时,我对着Keil里找不到的芯片型号和一堆陌生的驱动库文件陷入了沉思。与STM32生态相比,华大MCU的开发环境搭建确实存在不少"坑点"。本文将分享一套…...
UNet3+全解析:从结构创新到医学图像分割实战
1. UNet3为什么能成为医学图像分割的新标杆? 第一次看到UNet3的论文时,我正被一个肝脏CT分割项目折磨得焦头烂额。当时试过UNet、UNet、Attention UNet等各种变体,但总在一些微小病灶的边界分割上差强人意。直到把UNet3的代码跑起来ÿ…...
从HIDL到HAL3:手把手拆解Android相机Provider进程的通信与数据流转
Android相机架构深度解析:从HIDL到HAL3的数据流转与性能优化 在移动影像技术快速迭代的今天,Android相机系统的架构设计直接影响着成像质量与用户体验。作为连接应用层与硬件层的核心枢纽,Camera Provider进程通过HIDL接口与Camera Service通…...
如何用Layerdivider快速实现智能图像分层:面向设计师和开发者的完整指南
如何用Layerdivider快速实现智能图像分层:面向设计师和开发者的完整指南 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider Layerdivider是一款强…...
淘宝淘金币自动化脚本终极指南:每天节省20分钟的完整解决方案
淘宝淘金币自动化脚本终极指南:每天节省20分钟的完整解决方案 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi …...
TAMI-MPC框架:优化边缘计算中的隐私保护机器学习
1. TAMI-MPC框架设计背景与核心挑战 在边缘计算和物联网设备快速发展的今天,隐私保护机器学习(Privacy-Preserving Machine Learning, PPML)的需求日益凸显。安全多方计算(Secure Multi-Party Computation, MPC)作为PP…...
VINS-Mono跑EUROC数据集实战:如何解读Rviz可视化结果与评估轨迹精度?
VINS-Mono EUROC数据集实战:Rviz可视化与轨迹精度评估全解析 当你第一次在Rviz中看到VINS-Mono处理EUROC数据集生成的复杂点云和轨迹时,那种既兴奋又困惑的感觉我完全理解。作为一款开源的视觉惯性里程计(VIO)系统,VINS-Mono在无人机、移动机…...
本地大模型推理引擎:高性能、可编程的部署与优化实战
1. 项目概述:一个为本地大模型打造的“瑞士军刀”式推理引擎如果你最近在折腾本地部署的大语言模型,比如Llama、Qwen或者DeepSeek,那你大概率遇到过这样的场景:模型文件下载好了,推理框架也装上了,但实际跑…...
EDA平台化架构:电子系统设计的未来趋势
1. 电子系统设计演进:从工具链到平台化架构在电子设计自动化(EDA)领域,过去三十年最显著的变化莫过于设计工具架构的演进。早期工程师使用独立的原理图工具、PCB布局工具和仿真工具,通过文件导入导出的方式串联起整个设…...
