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

leetcode Hot 100系列

文章目录


一、核心操作

  1. 用map,key为char,value为出现次数,将字符串中的值依次入栈,再判断次数是否大于1,如果大于1,则循环删除掉包括重复值之前的char
  2. 记录最大长度

提示:小白个人理解,如有错误敬请谅解!

二、外层配合操作

  1. 双指针操作

三、核心模式代码

代码如下:

c 复制代码
class Solution {
    public:
        int lengthOfLongestSubstring(std::string s) {
            std::unordered_map<char,int> umap;
            int res=0;
            for(int left=0,right=0;right<s.size();right++)
            {
                umap[s[right]]++;
                while(umap[s[right]]>1)
                {
                    umap[s[left++]]--;
                }
                res=std::max(res,right-left+1);
            }
            return res;
        }
    };

总结

  1. 先加入,后判断,循环删除重复值
相关推荐
燃于AC之乐3 小时前
我的算法修炼之路--4 ———我和算法的爱恨情仇
算法·前缀和·贪心算法·背包问题·洛谷
MM_MS8 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
独自破碎E9 小时前
【二分法】寻找峰值
算法
mit6.8249 小时前
位运算|拆分贪心
算法
ghie909010 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体110 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk99810 小时前
VSC优化算法MATLAB实现
开发语言·算法·matlab
Z1Jxxx10 小时前
加密算法加密算法
开发语言·c++·算法
乌萨奇也要立志学C++10 小时前
【洛谷】递归初阶 三道经典递归算法题(汉诺塔 / 占卜 DIY/FBI 树)详解
数据结构·c++·算法
vyuvyucd11 小时前
C++引用:高效编程的别名利器
算法