• 【LeetCode】【剑指offer】【最长不含重复字符的子字符串】


    剑指 Offer 48. 最长不含重复字符的子字符串

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

    示例 1:

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

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

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

    提示:

    s.length <= 40000

    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/zui-chang-bu-han-zhong-fu-zi-fu-de-zi-zi-fu-chuan-lcof
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

     

    对于这道题我们可以采取滑动窗口的思路。 

    a                b                c                a                b                c                b                b 

    此时在我们的map中a对应的数字为1 ,此时最大的不含重复字的最大字符串长度为1

     

    a->1 ,b->1 ,此时最大的不含重复字的最大字符串长度为2

     

    a->1,b->1,c->1 ,此时最大的不含重复字的最大字符串长度为3

     

     a->2,b->1,c->1

    这时候我们就需要对我们左边的边界进行一些调整

     

      a->1,b->1,c->1

    此时最大的不含重复字的最大字符串长度为3

     

     a->1,b->2,c->1

    这时候我们就需要对我们左边的边界进行一些调整

     a->1,b->1,c->1

    此时最大的不含重复字的最大字符串长度为3

     

     a->1,b->1,c->2

    这时候我们就需要对我们左边的边界进行一些调整

     

     a->1,b->1,c->1

    此时最大的不含重复字的最大字符串长度为3

     

     a->1,b->2,c->1

    这时候我们就需要对我们左边的边界进行一些调整

     

     a->0,b->2,c->1

    这时候我们就需要对我们左边的边界进行一些调整

     

     a->0,b->1,c->1

    此时虽然我们当前的不含重复字的最大字符串长度为2,但是之前有最大的不含重复字的最大字符串长度为3。

     

    a->0,b->2,c->1

    这时候我们就需要对我们左边的边界进行一些调整

     

    a->0,b->2,c->0

    这时候我们就需要对我们左边的边界进行一些调整

     

    a->0,b->1,c->0

    在我们整个过程中不含重复字的最大字符串长度为3。

     

     

    1. class Solution {
    2. public:
    3. int lengthOfLongestSubstring(string s) {
    4. map<char,int> record;
    5. int point=0;
    6. int result=0;
    7. int left=0;
    8. while(pointsize())
    9. {
    10. record[s[point]]++;
    11. if(record[s[point]]==2)
    12. {
    13. record[s[point]]--;
    14. record[s[left]]--;
    15. point--;
    16. left++;
    17. }
    18. else
    19. {
    20. result=max(result,point-left+1);
    21. }
    22. point++;
    23. }
    24. return result;
    25. }
    26. };

  • 相关阅读:
    HTML & CSS
    ECharts快速入门
    java-net-php-python-jsp校园美食点评系统计算机毕业设计程序
    Linux命令详解-find命令(一)
    java-net-php-python-jsp学生社团信息演示录像2019计算机毕业设计程序
    MIPI CSI-2笔记(20) -- 建议的内存存储格式(Recommended Memory Storage)
    vue-quill-editor 富文本编辑器上传视频
    《苍穹外卖》知识梳理6-缓存商品,购物车功能
    笔记本、台式机、平板二合一?Mac、Win、Linux?
    CMS getshell
  • 原文地址:https://blog.csdn.net/weixin_62684026/article/details/126436080