0
点赞
收藏
分享

微信扫一扫

LeetCode3 无重复字符的最长子串(字符串set)

sin信仰 2022-03-20 阅读 62
C++

Description:

题目大意:找到最长的不重复子串

解题思路:

算法标签:字符串,unordered_set
利用unordered_set判断子串,从左往右依次判断

代码:

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        unordered_set<char>word;
        int len = s.length();
        int right = -1,ans = 0;

        for(int i = 0;i < len;i++) {          
            // 删除左边的节点
            if(i != 0)
                word.erase(s[i-1]);
            //判断右节点是否重复
            while(right+1 < len && !word.count(s[right+1])) {
                word.insert(s[right+1]);
                right++;
            }
            ans = max(ans,right-i+1);
        }
        return ans;
    }
};
举报

相关推荐

0 条评论