3. 无重复字符的最长子串

ops/2025/3/16 15:48:08/

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

示例 1:

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

示例 2:

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

示例 3:

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

这题可以使用滑动窗口的方法来做,设置一个right和left,right一直向右移动,并且设置一个哈希表来存储遍历到的字符,当right遍历到的字符有重复时,通过不断删去left对应的字符来观察是否满足没有重复字符,并对比ans。详细的C++代码如下:

class Solution {
public:int lengthOfLongestSubstring(string s) {int l = s.size();int left = 0,ans = 0;unordered_map<char,int> cnt;for(int right = 0;right < l;right++){char a = s[right];cnt[a]++;while(cnt[a] > 1){cnt[s[left]]--;left++;}ans = max(ans,right - left +1);}return ans;}
};


http://www.ppmy.cn/ops/166237.html

相关文章

Linux内核,mmap_pgoff在mmap.c的实现

1. mmap_pgoff的系统调用实现如下 SYSCALL_DEFINE6(mmap_pgoff, unsigned long, addr, unsigned long, len,unsigned long, prot, unsigned long, flags,unsigned long, fd, unsigned long, pgoff) {return ksys_mmap_pgoff(addr, len, prot, flags, fd, pgoff); }2. ksys_mma…

MyBatis框架操作数据库一>xml和动态Sql

目录 配置连接字符串和MyBatis:数据库的连接配置&#xff1a;XML的配置&#xff1a; XML编写Sql:model层&#xff1a;mapper层&#xff1a; 动态Sql:if 标签和trim标签&#xff1a;where标签:Set标签:Foreach标签: Mybatis的开发有两种方式&#xff1a;&#xff1a; 注解和XML&…

FPGA前端设计适合哪些人学?该怎么学?

FPGA前端设计是一个具有挑战性且薪资待遇优渥的岗位&#xff0c;主要涉及FPGA芯片定义、逻辑结构设计。这个职位要求相关专业的本科及以上学历&#xff0c;并且需要掌握一定的专业技能。工作内容从IP级设计到全芯片&#xff08;SoC&#xff09;设计&#xff0c;涉及多个设计层级…

iOS应用程序开发(图片处理器)

续上篇 iOS 编程开发图片浏览器&#xff0c;继续实现一个图标生成功能。 功能。 操作系统平台&#xff1a;MacBook(macOS) IDE:xcode 编程语言&#xff1a;Objective-c 以下是小程序在 iPhone 模拟器中的运行视频。也可以在 iPad 模拟器中运行。 效果图如下所示&#xff1a…

Linux find 命令完全指南

find 是 Linux 系统最强大的文件搜索工具&#xff0c;支持 嵌套遍历、条件筛选、执行动作。以下通过场景分类解析核心用法&#xff0c;涵盖高效搜索、文件管理及高级技巧&#xff1a; 一、基础搜索模式 1. 按文件名搜索&#xff08;精确/模糊匹配&#xff09; <BASH> f…

洛谷 P1725 琪露诺 单调队列优化的线性dp

以上是题目 考虑到2e5的数据范围&#xff0c;暴力的先枚举i&#xff0c;在枚举走的步数区间j&#xff0c;是过不了的&#xff0c; 我们可以看出对于每一个i&#xff0c;只需要找出能走的i的区间的dp最大值即可&#xff0c;求区间最大值可以使用单调队列&#xff0c;时间复杂度…

江科大51单片机笔记【12】AT24C02(I2C总线)

写在前言 此为博主自学江科大51单片机&#xff08;B站&#xff09;的笔记&#xff0c;方便后续重温知识 在后面的章节中&#xff0c;为了防止篇幅过长和易于查找&#xff0c;我把一个小节分成两部分来发&#xff0c;上章节主要是关于本节课的硬件介绍、电路图、原理图等理论知识…

【Linux】UDP协议与TCP协议

目录 一、端口号 &#xff08;一&#xff09;端口号划分 &#xff08;二&#xff09;端口号相关概念 二、相关指令 &#xff08;一&#xff09;pidof &#xff08;二&#xff09;netstat 三、UDP协议 &#xff08;一&#xff09;UDP协议格式 &#xff08;二&#xff09…