python每日一题——8无重复字符的最长子串
题目
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:
输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:
输入: s = “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。
答案
这个问题可以使用滑动窗口算法来解决。
首先,我们定义一个变量 max_len 来记录最长子串的长度,并初始化为 0。
然后,我们定义一个集合 char_set 来记录当前窗口内出现的字符,并初始化为空集。
接下来,我们使用一个指针 left 来表示当前窗口的左边界,初始化为 0。
然后,我们使用一个指针 right 来表示当前窗口的右边界,初始化为 0。
在每次循环中,我们将 right 向右移动一位,并将当前字符加入到 char_set 中。
如果当前字符已经在 char_set 中出现过,说明当前窗口内存在重复字符,我们需要将 left 向右移动一位,并更新 char_set 和 max_len。
最后,我们返回 max_len 即可。
以下是 Python 代码实现:
def lengthOfLongestSubstring(s: str) -> int:max_len = 0 # 最长子串的长度char_set = set() # 当前窗口内出现的字符集合left = 0 # 当前窗口的左边界right = 0 # 当前窗口的右边界while right < len(s):if s[right] in char_set:char_set.remove(s[left])left += 1char_set.add(s[right])max_len = max(max_len, right - left + 1)right += 1return max_len
相关文章:
python每日一题——8无重复字符的最长子串
题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串…...
【数据中台】开源项目(2)-Dbus数据总线
1 背景 企业中大量业务数据保存在各个业务系统数据库中,过去通常的同步数据的方法有很多种,比如: 各个数据使用方在业务低峰期各种抽取所需数据(缺点是存在重复抽取而且数据不一致) 由统一的数仓平台通过sqoop到各个…...
职场快速赢得信任
俗话说的好,有人的地方就有江湖。 国内不管是外企、私企、国企,职场环境都是变换莫测。 这里主要分享下怎么在职场中快速赢取信任。 1、找到让自己全面发展的方法 要知道,职场中话题是与他人交流的纽带,为了找到共同的话题&am…...
【SpringBoot3+Vue3】五【完】【实战篇】-前端(配合后端)
目录 一、环境准备 1、创建Vue工程 2、安装依赖 2.1 安装项目所需要的vue依赖 2.2 安装element-plus依赖 2.2.1 安装 2.2.2 项目导入element-plus 2.3 安装axios依赖 2.4 安装sass依赖 3、目录调整 3.1 删除部分默认目录下文件 3.1.1 src/components下自动生成的…...
[LaTex]arXiv投稿攻略——jpg/png转pdf
一、将图片复制进ppt,右键单击图片选择设置图片格式,获取图片高度和宽度 二、选择“设计-幻灯片大小-自定义幻灯片大小” 三、设置幻灯片大小为图片大小 四、 选择“最大化” 五、 检查幻灯片大小是否与图像大小一致 六、导出为PDF...
使用Pytorch从零开始构建GRU
门控循环单元 (GRU) 是 LSTM 的更新版本。让我们揭开这个网络的面纱并探索这两个兄弟姐妹之间的差异。 您听说过 GRU 吗?门控循环单元(GRU)是更流行的长短期记忆(LSTM)网络的弟弟,也是循环神经网络&#x…...
【尚跑】2023宝鸡马拉松安全完赛,顺利PB达成
1、赛事背景 千年宝地,一马当先!10月15日7时30分,吉利银河2023宝鸡马拉松在宝鸡市行政中心广场鸣枪开跑。 不可忽视的是,这次赛事的卓越之处不仅在于规模和参与人数,还在于其精心的策划和细致入微的组织。为了确保每位…...
Mac nginx安装,通过源码安装教程
第一部分 安装参考网址: https://blog.csdn.net/a1004084857/article/details/128512612; 以上步骤执行完,进入找到sbin目录,查看下面是不是有nginx可执行文件,如果有在当前sbin下执行./nginx,就会发现NGINX已启动 第…...
TypeScript中的枚举是什么?
在TypeScript中,枚举(Enum)是一种用于定义一组有命名的常量值的数据类型。它们可以提供更具可读性和可维护性的代码。 枚举的作用是为一组相关的值提供一个易于理解和使用的命名空间。它们可以用于代表一系列可能的选项、状态或标志…...
进程并发-信号量经典例题-面包师问题
1 题目描述 面包师有很多面包和蛋糕,由N个销售人员销售。每个顾客进店后先取一个号,并且等着叫号。当一个销售人员空闲下来,就叫下一个号。试用信号量的P、V操作设计该问题的同步算法,给出所用共享变量(如果需要&…...
c语言练习12周(11~15)
编写double fun(int a[],int n)函数,计算返回评分数组a中,n个评委打分,去掉一个最高分去掉一个最低分之后的平均分 题干编写double fun(int a[],int n)函数,计算返回评分数组a中,n个评委打分,去掉一…...
Java 实现视频转音频功能
在实际开发中,我们经常需要处理各种多媒体文件。本文将介绍如何使用 Java 语言实现将视频文件转换为音频文件的功能。我们将使用 FFmpeg 工具来进行视频转换操作,并通过 Java 的 ProcessBuilder 实现调用系统命令执行 FFmpeg 的功能。 准备工作 首先,我们需要确保系统中已安…...
可以在Playgrounds或Xcode Command Line Tool开始学习Swift
一、用Playgrounds 1. App Store搜索并安装Swift Playgrounds 2. 打开Playgrounds,点击 文件-新建图书。然后就可以编程了,如下: 二、用Xcode 1. 安装Xcode 2. 打开Xcode,选择Creat New Project 3. 选择macOS 4. 选择Comman…...
IDC最新报告,增速减缓+AI增势,阿里云视频云中国市场第一
国际权威数据公司IDC发布 《中国视频云市场跟踪(2023 H1)》报告 自2018年至今,阿里云持续保持 中国视频云整体市场第一 整体市场占比达24.4% 01 第一之外,低谷之上 近期,国际权威数据公司IDC最新发布了《中国视频…...
常见状态码
欢迎大家到我的博客浏览。常见状态码 | YinKais Blog 常见状态码<!--more--> 1、200 200:服务器已经接收了请求,但处理还没有完成。 204:服务器已经成功处理了请求,但相应中没有任何返回内容。比如 DELETE 请求。 206&…...
Spring原理——基于xml配置文件创建IOC容器的过程
Spring框架的核心之一是IOC,那么我们是怎么创建出来的Bean呢? 作者进行了简单的总结,希望能对你有所帮助。 IOC的创建并不是通过new而是利用了java的反射机制,利用了newInstance方法进行的创建对象。 首先,我们先定义…...
CUDA initialization failure with error: 999
ubuntu20.04,安装tensorRT, 执行example里面的./sample_char_rnn程序,测试时候报了如标题的一个错误,居然如下两行代码这样解决了,这两行命令好像是重新加载nvidia内核模块,有点玄学: sudo rmmod nvidia_u…...
一些权限方面的思考
一些权限方面的思考 背景说明自定义注解解析自定义注解 背景 鉴权可以通过切面做抽取 说明 都是一些伪代码, 不能直接使用, 提供一种思路. 都是一些伪代码, 不能直接使用, 提供一种思路. 都是一些伪代码, 不能直接使用, 提供一种思路. 自定义注解 自定义注解: Permission …...
NX二次开发UF_CURVE_add_faces_ocf_data 函数介绍
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_add_faces_ocf_data Defined in: uf_curve.h int UF_CURVE_add_faces_ocf_data(tag_t face_tag, UF_CURVE_ocf_data_p_t uf_offset_data ) overview 概述 Add a face col…...
MacM1(ARM)安装Protocol Buffers
MacM1(ARM)安装Protocol Buffers 本文目录 MacM1(ARM)安装Protocol Buffers3.21之前版本安装使用configure3.22之后版本安装使用cmake使用编译后的版本 protobuf下载地址:https://github.com/protocolbuffers/protobuf/releases 在运行./autogen.sh或./configure命…...
从海康到大华:ONVIF协议兼容性避坑指南(附主流厂商测试报告)
从海康到大华:ONVIF协议兼容性深度解析与实战避坑指南 在安防系统集成项目中,设备间的互联互通一直是工程实施的关键痛点。记得去年参与某智慧园区项目时,我们团队在设备联调阶段发现海康威视的球机无法通过ONVIF协议控制大华NVR的预置点调用…...
RobotDuLAB:面向K-12教育的Arduino机器人教学库设计
1. RobotDuLAB Arduino库:面向教育场景的嵌入式机器人控制抽象层设计与工程实践1.1 教育型开源机器人的系统定位与硬件架构RobotDuLAB并非通用工业机器人平台,而是一个专为K-12阶段编程教学深度定制的开源教育机器人系统。其核心设计理念是“可理解性优先…...
大模型全景图-GPT到多模态演进路线
大模型全景图:从 GPT 到多模态,我是怎么被一路"卷"过来的一张图理清大模型演进路线,不再被各种名词绕晕从一个场景说起 前段时间有个朋友问我:“现在大模型这么多,GPT、Claude、Gemini、文心、通义ÿ…...
Lynis使用教程
在Kali Linux的系统安全审计工具库中,Lynis是一款开源、跨平台的自动化安全审计工具,核心定位是“Linux/Unix系统深度安全扫描与合规性检查工具”。它通过对系统内核、软件配置、用户权限、服务状态、日志策略等维度进行全面检测,识别潜在的安…...
从零开始:ArcGIS Pro二次开发环境搭建与首个模块加载项实战
1. 环境准备:从零搭建ArcGIS Pro开发环境 第一次接触ArcGIS Pro二次开发时,我花了整整两天时间才把环境配置好。现在回想起来,其实只要抓住几个关键点就能避开那些坑。首先需要确认的是软件版本匹配问题——这是新手最容易翻车的地方。根据我…...
解决VSCode远程SSH连接中的XHR错误
解决VSCode远程SSH连接中的XHR错误 在使用Visual Studio Code(以下简称VSCode)进行远程SSH连接时,开发者可能会遇到无法下载vscode-server的问题,导致连接失败并抛出XHR错误。以下是一些常见的问题分析和解决方案。 问题背景 假设你正在使用VSCode连接到一台远程服务器,…...
需求管理中的用户故事与用例结合方法
需求管理中的用户故事与用例结合方法 在敏捷开发中,需求管理是确保项目成功的关键环节。用户故事和用例是两种常见的需求表达方式,各有优势:用户故事简洁灵活,侧重用户价值;用例则结构化清晰,适合复杂场景…...
【5G系列】深入解析NAS层UAC:Access Identity与Access Category的获取机制
1. 深入理解NAS层UAC的核心概念 在5G网络中,NAS(Non-Access Stratum)层的统一接入控制(UAC)机制扮演着至关重要的角色。简单来说,UAC就像是一个智能门卫,它负责决定哪些终端设备(UE&…...
充电宝选取建议全流程教程
9个步骤精准挑选。充电宝选取没有统一标准,按自身使用场景匹配参数,才能选到实用又安全的产品。本教程适用于日常出行、办公、旅行等多种场景,通过完整步骤与避坑方法,帮助用户掌握充电宝选取核心逻辑,挑选到容量、功率…...
建文AI录单助手 | 一键识别,秒级回填,彻底告别‘人肉录单’模式
摘要:建文AI录单助手以AI为引擎,构建“一键识别 -> 自动回填->全链贯通”的智能解决方案,覆盖合同、材料、签证、进度、付款、发票、结算等全业务场景,真正实现“人工退出、效率跃升、风险可控、秒级回填”的数字化升级&…...
