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; } };