LeetCode 刷题 [C++] 第3题.无重复字符的最长子串

news2024/12/28 4:48:11

题目描述

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
在这里插入图片描述

题目分析

可以使用滑动窗口加哈希表来实现:

  1. 使用start和end两个变脸来表示滑动窗口的头部位置和尾部位置,两者开始均为0;
  2. 借助哈希表来记录已经遍历的字符的位置,以及len为滑动窗口的长度;
  3. 按序遍历字符串,并判断哈希表中是否存在当前字符:
    • 如果存在当前访问的字符,且该字符上次出现位置大于start,即当前滑动窗口出现了相同字符,此时,更新start位置,并更新len为新窗口的长度;
    • 否则,则不更新start位置
  4. 记录或者更新当前字符的位置,end和len分别加1,并且更新ans为max(ans,len);

Code

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int start = 0, end = 0, len = 0, ans = 0;
        int size = s.size();
        unordered_map<char,int> hash_map;
        while (end < size) {
            char tmp = s[end];
            if (hash_map.count(tmp) > 0 && hash_map[tmp] >= start) {
                start = hash_map[tmp] + 1;
                len = end - start;
            }
            hash_map[tmp] = end;
            ++end;
            ++len;
            ans = ans > len ? ans : len;
        }
        return ans;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1501027.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WinSCP下载安装并结合内网穿透实现固定公网TCP地址访问本地服务器

文章目录 1. 简介2. 软件下载安装&#xff1a;3. SSH链接服务器4. WinSCP使用公网TCP地址链接本地服务器5. WinSCP使用固定公网TCP地址访问服务器 1. 简介 ​ Winscp是一个支持SSH(Secure SHell)的可视化SCP(Secure Copy)文件传输软件&#xff0c;它的主要功能是在本地与远程计…

走向审计4.0:内部审计数字化转型的路径与方法【文末送书-34】

文章目录 走向审计4.0&#xff1a;内部审计数字化转型的路径与方法一、内部审计的发展阶段二、内部审计的逻辑架构三、内部审计数字化转型面临的问题四、内部审计数字化转型的框架方法五、内部审计的数字化转型能力体系六、内部审计的数字化转型路径七、内部审计的数字化系统平…

Research Agent:具有解决基于大型文本语料库的复杂问题,具备深度多跳推理的能力

原文地址&#xff1a;https://towardsdatascience.com/the-research-agent-4ef8e6f1b741 2023 年 8 月 29 日 问题简介 在2021年&#xff0c;开始应对基于大量文本回答问题的挑战。在预训练transformers之前的时代&#xff0c;这个问题很难破解。 人工智能和大型预训练tran…

143.和弦是什么?和声是什么?三和弦

内容参考于&#xff1a; 三分钟音乐社 上一个内容&#xff1a;142.音程的构唱练习 和弦的定义&#xff1a; 一个音可以把它称为单音 两个音可以把它称为音程 更多的音&#xff0c;通俗的定义上&#xff0c;三个音或者三个以上的音构成的集体就可以叫做和弦&#xff0c;这些音…

Redis进阶(三):主从复制

为了解决单点问题&#xff0c;实现多服务器部署redis&#xff0c;有几种解决方案可以实现&#xff1a;主从复制&#xff0c;主从哨兵还有集群。 何为主从复制 简单来说有三个服务器分别部署了redis-server程序&#xff0c;选中一个服务器当作主节点&#xff0c;其他的就是从节…

TypeScript 哲学 - Object Types

readonly 修饰对象和数组的 双向可分配性是不同的 Combind types 交叉类型对 值类型可以识别 never 但是 Object 类型识别不了 Tuple

AI时代PPT如何制作?用这10款pptai生成器一键制作!

ppt如何制作&#xff1f; 这可能是很多职场人或大学生日常头疼的问题&#xff0c;职场上随便一个工作汇报、提案展示、团队会议&#xff0c;学校里的小组作业、论文答辩等场景&#xff0c;都会用到ppt。 都说人是视觉动物&#xff0c;在两份文档内容质量一致的情况下&#xf…

Qt插件之输入法插件的构建和使用(二)

文章目录 主键盘搭建Google开源引擎音节分割工具类参考项目下载搭建好各个基础控件之后,就可以开发输入法的主界面和引擎了,这也是输入法的核心。 主键盘搭建 输入法的主界面本质上是一个QStackedWidget容器,将各个类型的输入键盘插入到容器中,然后根据业务需要切换不同的…

通过对话式人工智能打破语言障碍

「AI突破语言障碍」智能人工智能如何让全球交流无障碍 在当今互联的世界中&#xff0c;跨越语言界限进行交流的能力比以往任何时候都更加重要。 对话式人工智能&#xff08;包括聊天机器人和语音助手等技术&#xff09;在打破这些语言障碍方面发挥着关键作用。 在这篇博文中&am…

Java对接海康威视摄像头实现抓图

目录 一、下载SDK 二、拷贝示例代码 三、拷贝库文件 四、运行Demo 五、抓图业务 六、调参 ​七、发布Linux正式环境 一、下载SDK 海康开放平台 二、拷贝示例代码 三、拷贝库文件 这时候直接运行ClientDemo会报错&#xff0c;因为缺失库文件&#xff01; 四、运行Demo …

13 OpenCv自定义线性滤波

文章目录 卷积算子示例 卷积 卷积是图像处理中一个操作&#xff0c;是kernel在图像的每个像素上的操作。Kernel本质上一个固定大小的矩阵数组&#xff0c;其中心点称为锚点(anchor point) 把kernel放到像素数组之上&#xff0c;求锚点周围覆盖的像素乘积之和&#xff08;包括锚…

杨辉三角(附html,Python,c++杨辉三角代码)

1、前言 杨辉三角很早学编程就知道&#xff0c;但不知道杨辉是古人&#xff01; 一次偶然的机会&#xff0c;和杨辉三角对上了眼神——杨辉&#xff01;究竟你是怎么发现杨辉三角的呢&#xff1f; 于是经过了长达3个月锲而不舍的探究。 终究也没发现自己想要的最终结果。 …

内螺旋面的计算

内螺旋面的计算 内螺旋面的计算是机械工程和数学领域中的一个重要问题。它涉及到三维几何、微积分和数值计算等多个方面的知识。内螺旋面的形状和特性对于许多机械装置和工程应用来说至关重要&#xff0c;因此准确计算内螺旋面的几何参数和性质至关重要。内螺旋面是一种特殊的…

warning: #188-D: enumerated type mixed with another type

警告解释&#xff1a;枚举类型混合了其它的数据类型&#xff1b; 解决方法&#xff1a; 1&#xff1a;检查代码&#xff0c;是不是存在混用&#xff1b;&#xff1b; 2&#xff1a;结构体初始化为 0 报warning&#xff0c;不能将结构体的第一个变量&#xff0c;使用枚举类型&am…

Dgraph 入门教程五(Shema)

要想做好图数据库&#xff0c;必须做图数据库设计&#xff0c;想做好Dgraph&#xff0c;就需要设计好Shema。Shema的语法是必须理解&#xff0c;如果不理解&#xff0c;别人写的Shema&#xff0c;我们也看不懂。我这里也是走马观花式的记录&#xff0c;细节还需要在使用的时候去…

如何恢复未保存的 Excel 文件

本周我们将 Office 恢复系列扩展到 Excel 恢复&#xff0c;并提出了最常见的问题&#xff1a;如何恢复 Excel 文件&#xff1f; 与 Office Word 不同&#xff0c;Excel 完全是关于表格和计算的。在处理Excel文件时&#xff0c;您可能会遇到更多问题。与往常一样&#xff0c;我们…

java-抢红包一些简单概念

抢红包&#xff0c;比如微信中抢红包&#xff0c;红包金额分配使用的是二倍均值算法。 二倍均值拆包&#xff1a; 拆包要求:所有人抢到的金额之和等于红包总额&#xff0c;每个人最少抢到 0.01 元&#xff0c;每个人抢到的红包金额不要相差太大二倍均值法:假设红包总金额是X&…

python安装laspy遍历las获取所有点的坐标

python3.12 pip install laspy 读取 LAS 文件中的点坐标&#xff0c;可以使用 laspy 库。这个库允许你轻松地读取和操作 LAS 文件中的数据。下面是一个示例代码&#xff0c;演示了如何使用 laspy 读取 LAS 文件中的坐标&#xff1a; 1、方法一 #version laspy&#xff1a;2.…

(C语言)字符分类函数

目录 字符分类函数 1. iscntrl 2. isspace 3. isdigit 4. isxdigit 5. islower 6. isupper 7. isalpha 8. isalnum 9. ispunct 10. isgraph 11. isprint 字符分类函数 C语言中有一系列的函数是专门做字符分类的 &#xff0c;也就是一个字符是属于什么类型的字符的。…

文献学习-13-机器人顶刊IJRR近期国人新作(2024.3)

一、IJRR简介 The International Journal of Robotics Research&#xff08;IJRR&#xff09;是机器人领域的高水平学术期刊&#xff0c;专注于发布关于机器人技术和相关领域的最新研究成果。IJRR创刊于1982年&#xff0c;是该领域的第一本学术刊物&#xff0c;2022-2023最新影…