zoukankan      html  css  js  c++  java
  • 3. 无重复字符的最长子串

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

    class Solution {
    public:
        int lengthOfLongestSubstring(string s) {
            // 双指针问题,或者 dp 思维, 双指针 维护一个子串,实时计算长度, 注意特殊的情况,以及
            //  需要注意的是,当右边指针 判断 是存在重复的字符的时候,需要不断缩小左边的窗口来判断,
            //  所以左边的 指针是在一个while 循环中的
            if(s.size() == 0) return 0;
            unordered_set<char> lookup;
    
            int maxStr = 0;
            int left = 0;
    
            for(int i = 0; i < s.size(); i++){
                while (lookup.find(s[i]) != lookup.end()){
                    lookup.erase(s[left]);
                    left ++;
                }
                maxStr = max(maxStr,i-left+1);
                lookup.insert(s[i]);
            }
            return maxStr;
        }
    };
  • 相关阅读:
    c++函数学习-关于c++函数的林林总总
    STL学习笔记(七) 程序中使用STL
    STL学习笔记(六) 函数对象
    本学期总结与课程建议
    12.19
    12.18Tomcat相关知识
    12.17
    12.16
    12.15
    12.14
  • 原文地址:https://www.cnblogs.com/simplepaul/p/12818853.html
Copyright © 2011-2022 走看看