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

力扣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.xdnf.cn/news/18039.html

相关文章:

  • 【LeetCode题解】LeetCode 33. 搜索旋转排序数组
  • Java研学-SpringCloud(二)
  • 从零到一:打包并发布你的第一个MCP AI工具服务
  • DNS总结
  • 从CVPR到NeurIPS,可变形卷积+可变形空间注意力如何斩获最佳论文
  • python+flask后端开发~项目实战 | 博客问答项目--模块化文件架构的基础搭建
  • 灰色预测模型
  • matlab tlc的文件、字符串操作
  • 【力扣热题100】双指针—— 接雨水
  • redis和cdn的相似性和区别
  • Android中切换语言的方法
  • Perf使用详解
  • 黑马商城day08-Elasticsearch作业(个人记录、仅供参考、详细图解)
  • 解决 SECURE_PCI_CONFIG_SPACE_ACCESS_VIOLATION蓝屏报错
  • 大模型提示词(Prompt)终极指南:从原理到实战,让AI输出质量提升300%
  • 为什么TCP连接是三次握手?不是四次两次?
  • ruoyi-vue(十一)——代码生成
  • ansible管理变量和事实
  • Chrome插件开发实战:todoList 插件
  • 影刀初级B级考试大题2
  • Java ArraysParallelSortHelpers 并行排序
  • PyTorch 面试题及详细答案120题(01-05)-- 基础概念与安装
  • 深度学习-计算机视觉-数据增广/图像增广
  • AMBA-AXI and ACE协议详解(三)
  • TDengine IDMP 运维指南(1. 部署规划)
  • 基于飞算JavaAI的可视化数据分析集成系统项目实践:从需求到落地的全流程解析
  • 学习游戏制作记录(玩家掉落系统,删除物品功能和独特物品)8.17
  • Vue深入组件:Props 详解2
  • LINUX学习笔记
  • [RCTF2015]EasySQL