LeetCode OJ-- Longest Substring Without Repeating Characters ***@

https://oj.leetcode.com/problems/longest-substring-without-repeating-characters/

给一个string,找出其中不含有重复元素的最长子串的长度。

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        if(s.size() == 0 || s.size() == 1)
            return s.size();
        
        map<char,int> map_record;
        
        int max_len = 1;
        int len = 0;
        for(int i = 0; i < s.size(); i++)
        {
            len++; //维护当前的没有相同元素的范围长度
            if(map_record.count(s[i]) != 0 && map_record[s[i]] > i - len) //如果存在相同的元素,并且这个元素是在当前范围之内的
                len = i - map_record[s[i]]; //更新当前范围的长度
            map_record[s[i]] = i;
            
            max_len = max_len < len ? len : max_len;
        }
        return max_len;
    }
};
原文地址:https://www.cnblogs.com/qingcheng/p/3870446.html