当前位置: 首页 > news >正文

力扣3:无重复字符的最长子串

力扣3:无重复字符的最长子串

  • 题目
  • 思路
  • 代码

题目

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

思路

这道题的思路其实是很简单的,最后我们需要得到子串的长度所以我们可以定义两个变量即子串的左边界和右边界这样有了左右边界就等于有了子串。然后我们从子串的起始位置开始移动右边界,每次移动前都要判断当前子串中是否有重复的字符如果有我们必须移动左边界直到移动到这个重复的字符后。
思路就是这样个思路,那么问题主要就是如何进行判断子串里是否有重复字符。其实也很简单我们使用哈希表即可。

代码

class Solution {
public:int lengthOfLongestSubstring(string s) {int n = s.size();if (n <= 1) {return n;}int res = 0;// 子串的左边界int left = 0;// 子串的有边界int right = 0;// 使用哈希表来检查是否有重复的字符unordered_set<char> us;for (right = 0; right < n; right++) {char ch = s[right];// 如果在哈希表里有了这个字符while (left <= right && us.count(ch)) {// 就从哈希表中删除左边界的字符// 并且++左边界直到哈希表中不存在ch字符us.erase(s[left]);left++;}us.insert(ch);res = max(res, right - left + 1);}return res;}
};
http://www.dtcms.com/a/336004.html

相关文章:

  • Linux软件编程:进程与线程(线程)
  • 最新技术论坛技术动态综述
  • 【论文阅读】美 MBSE 方法发展分析及启示(2024)
  • 多维视角下离子的特性、应用与前沿探索
  • RabbitMQ面试精讲 Day 24:消费者限流与批量处理
  • 从0实现系统设计
  • Python 类元编程(类作为对象)
  • Makefile介绍(Makefile教程)(C/C++编译构建、自动化构建工具)
  • 为什么神经网络在长时间训练过程中会存在稠密特征图退化的问题
  • LangGraph 的官网的一个最简单的聊天机器人
  • 数据与模型融合波士顿房价回归建模预测
  • SQL Server 2019安装教程(超详细图文)
  • [辩论] TDD(测试驱动开发)
  • 物联网软件开发过程中,数据流图(DFD),用例图,类图,活动图,序列图,状态图,实体关系图(ERD),BPMN(业务流程建模)详解分析
  • 豆包 Java的23种设计模式
  • OpenAI 发布了 GPT-5,有哪些新特性值得关注?国内怎么使用GPT5?
  • 内网后渗透攻击--隐藏通信隧道技术(应用层隧道技术)
  • 『搞笑名称生成器』c++小游戏
  • Nightingale源码Linux进行跨平台编译
  • 7.Ansible自动化之-实施任务控制
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘imageio’问题
  • maxwell安装部署
  • 数据结构:二叉树的高度 (Height)和节点总数 (Count of Nodes)
  • SpringCloud 07 微服务网关
  • C4 架构模型
  • 说一下事件委托
  • Qt——主窗口 mainWindow
  • Django3 - 建站基础知识点总结
  • 【JAVA 核心编程】面向对象中级:封装与访问控制
  • 获取IPv6地址的三种方式