1 int lengthOfLongestSubstring(string s) 2 { 3 int size = s.size();/*字符串长度*/ 4 vector<int> dict(256,-1);/*用来存储字符串中字符出现的位置*/ 5 int maxlen = 0;/*最大无重复字符串长度*/ 6 int start = -1;/*无重复字符串开始的位置*/ 7 for (int i=0; i<size; ++i) 8 { 9 if (dict[s[i]] > start) /*一旦某字符有了位置记录 说明该字符重复出现*/ 10 { 11 start = dict[s[i]]; /*把该字符上次出现的位置 记录为字符串开始位置*/ 12 } 13 dict[s[i]] = i; /*记录字符出现的位置 更新*/ 14 maxlen = max(maxlen, i - start); /*实时计算无重复字符串长度*/ 15 } 16 return maxlen;/*返回最大无重复字符串长度*/ 17 }