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

示例 1:

输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:

输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:

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

思路
一次遍历字符串,记录下每种字母出现的最新索引,当遍历的字母上一次出现的索引大于不重复子串的起始索引时,说明该字母在当前子串重复。不重复子串的长度丢等于,重复字母上一次的索引 - 子串起始索引 + 1 。
下一个子串的起始设置为重复字母的后一位。
最后更新字母对应的索引。

这里用数组来存放字母的索引应该更快。

int lengthOfLongestSubstring(string s) {//因为子串要求不能出现重复字母,因此考虑用一个map,保存每个字母最新索引//还要使用一个变量start 保存子串开始位置索引int start = 0;int res = 0;map<char, int> ch;int s_len = s.size();for(int i = 0; i < s_len; ++i){if(ch.find(s[i]) != ch.end()){int index = ch[s[i]];if(index >= start){// cout << "index " << index << endl;//出现重复字母res = max(res, i - start);// cout <<i << " " << res << endl;start = index + 1;       //从重复字母下一个开始计算长度}}ch[s[i]] = i;        //更新索引}res = max(res, s_len - start);          //遍历完计算最后的不重复子串的长度return res;}

leetcode题库3-- 无重复字符的最长子串相关推荐

  1. 【leetcode】力扣刷题(3):无重复字符的最长子串(go语言)

    一.问题描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 " ...

  2. python【力扣LeetCode算法题库】3- 无重复字符的最长子串

    无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 & ...

  3. LeetCode精讲 03无重复字符的最长子串(滑动窗口)

    题目描述 原创作者:bigsai,维护不易,如有收获,还请点赞.收藏支持! 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcb ...

  4. python字符串中最长的连续升序子串_Leetcode刷题练Python无重复字符的最长子串

    这是一道字符串处理算法的题目,在日常编程中,处理字符串是常见任务.该题目会涉及到一个概念"滑动窗口". 一.题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度 ...

  5. (LeetCode)Java 求解无重复字符的最长子串

    文章目录 一.题解 二.代码 三.总结 一.题解 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因 ...

  6. 【LeetCode 3-中等】无重复字符的最长子串(高清截图)

    3. [中等]无重复字符的最长子串 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 给 ...

  7. 【LeetCode笔记】3. 无重复字符的最长子串(JAVA、滑动窗口、字符串)

    文章目录 题目描述 思路 && 代码 1. 之前的版本 更新 2.0 题目描述 子串:各字符间必须要相邻,而非子序列 使用滑动窗口来做就行 思路 && 代码 1. 之前 ...

  8. 【Leetcode | 1】3. 无重复字符的最长子串

    这里我们可以建立一个HashMap,建立每个字符和其最后出现位置之间的映射,然后我们需要定义两个变量res和left,其中res用来记录最长无重复子串的长度,left指向该无重复子串左边的起始位置的前 ...

  9. php无重复字符的最长子串,PHP算法之无重复字符的最长子串

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...

  10. LeetCode题库整理【Java】—— 3 无重复字符的最长子串

    LeetCode题库整理[Java] ## 3 无重复字符的最长子串 题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" ...

最新文章

  1. SpringBoot返回枚举对象中的指定属性
  2. Django框架----分页器(paginator)
  3. html导航条置顶,jquery导航菜单栏固定悬浮顶部实现效果
  4. C和指针之字符串之实现strcpy函数
  5. 判断文件是否改变php,PHP判断文件是否被修改实例
  6. 查看oracle中的中文所占字节数
  7. 英语常用九种时态记忆要点
  8. 帅瞎了!手机也能写Python代码!手把手教你在手机或平板上配置Python环境!
  9. 多载波瑞利信道matlab,瑞利信道仿真matlab.doc
  10. linux查询文件md5sum,Linux下通过md5sum生成MD5文件校验MD5
  11. rabbitmq消息队列--restTemplate实现跨域请求--获取JSON字符串
  12. 牛客网--14405--齐齐录成绩
  13. HCNP——DR和BDR的概念
  14. MySQL2014版查询操作的入门级教学
  15. 马化腾为什么要怼朱啸虎,只因OFO套路太深
  16. 分布式与容器化的介绍
  17. 广西交通职业技术学院计算机专业在哪个校区,广西交通职业技术学院宿舍怎么样...
  18. input,checkbox启用禁用
  19. Android 源码目录结构
  20. Openlayers之加载Stamen地图

热门文章

  1. 哈工大理论力学第八版电子版_理论力学哈工大第八版1第一章思考题课后题
  2. android 自定义布局 根据布局获取类,android自定义布局中的平滑移动之ViewGroup实现...
  3. 新闻列表页flex_使用css3的Flex布局实现列表展示
  4. 深度学习————如何在Python中求解函数的解析表达式
  5. Python Tkinter之variable用法
  6. mongodb用户管理和服务安装
  7. leetcode950. Reveal Cards In Increasing Order
  8. 2018-2019-2 20165312《网络攻防技术》Exp7 网络欺诈防范
  9. 【LeetCode 剑指offer刷题】特殊数题3:204 Count Primes
  10. 把SQLAlchemy查询对象转换成字典/json使用(分开)