vector 记录字符以及其出现的位置。
只需维护窗口左侧的指针leftptr。
子串长度:i-leftptr
左侧窗口指针三种情况:
1. s[i]在窗口内
2. s[i]在窗口外
3. s[i]第一次出现
so: leftptr = max(leftptr, 字符c上一次的位置)
int lengthOfLongestSubstring(string s) {
vector<int> temp(127,-1);
int length = 0;
int leftptr = -1;
for(int i=0; i< s.size(); i++)
{
leftptr = max(leftptr, temp[s[i]]);
temp[s[i]] = i;
length = max(length, i-leftptr);
}
return length;
}