【剑指Offer】最长不含重复字符的子字符串
发布日期:2022-02-10 08:55:16 浏览次数:25 分类:技术文章

本文共 612 字,大约阅读时间需要 2 分钟。

题目

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。

思路

使用滑动窗口+优化

详细动态理解图见

代码

class Solution {public:    int lengthOfLongestSubstring(string s) {        int len = s.size();        map
m; int res = 0; int pLeft = 0; int pRight = 0; while(pRight < len){ if(m.find(s[pRight]) != m.end()){ //将头指针直接移动到窗口中重复元素的右侧 //但由于不知道大小,所以使用MAX比较一次 pLeft = max(pLeft, m[s[pRight]] + 1); } m[s[pRight]] = pRight; pRight++; //取最大值 res = max(res,pRight- pLeft); } return res; }};

 

转载地址:https://blog.csdn.net/hanmin822/article/details/105927254 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【剑指Offer】礼物的最大价值
下一篇:【剑指Offer】序列化二叉树

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月05日 04时13分03秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章