这个题目就是用一个256大小的数组,因为ASCII码能表示的范围就是256,然后出现一个字母都记住它最新的位置,记住最左边的位置,相减就是答案了,这个看代码应该比较容易看懂。。。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
vector<int> dist(256,-1);
int maxlen = 0,start = -1;
int len = s.length();
for(int i = 0;i<len;i++)
{
start = dist[s[i]]>start?dist[s[i]]:start;
dist[s[i]] = i;
maxlen = max(maxlen,i-start);
}
return maxlen;
}
};