• 【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. };

  • 相关阅读:
    gson的工具类JsonUtils
    《C和指针》笔记6
    性能测试中如何使用RunnerGo还原混合并发场景
    【语音识别】基于MFCC和MEL倒频系数实现声纹识别附matlab代码
    基于观察者模式设计的框架-REB,使代码模块化
    “文件迁徙行动”:高效送达第三方档案系统,守护惬意下班时光
    Kubernetes源码阅读环境搭建
    花生壳微信公众号开发配置
    因果推断 | 双重差分法笔记补充
    UG\NX二次开发 判断特征是否被抑制 UF_MODL_ask_suppress_feature
  • 原文地址:https://blog.csdn.net/weixin_62684026/article/details/126436080