滑动窗口
int lengthOfLongestSubstring(string s) {
if (s.empty())
return 0;
int size = s.size();
int left = 0;//left指向当前字符串的头部
int right = 1;//right指向当前字符串的尾部的下一个位置
int maxVal = 1;
while (right < size) {
int i = right - 1;
char target = s[right++];//在当前字符串加入新元素
for (; i >= left;--i) {
if (s[i] == target) {
break;
}
}
left = i + 1;//找到新的left
int newMaxVal = right - left;
if (newMaxVal > maxVal)
maxVal = newMaxVal;
}
return maxVal;
}