无重复字符的最长字串
运算代码如下:
class Solution
{
public:
int lengthOfLongestSubstring(string s)
{
//s[start,end) 前面包含 后面不包含
int start(0), end(0), length(0), result(0);
int sSize = int(s.size());
while (end < sSize)
{
char tmpChar = s[end];
for (int index = start; index < end; index++)
{
if (tmpChar == s[index])
{
start = index + 1;
length = end - start;
break;
}
}
end++;
length++;
result = max(result, length);
}
return result;
}
};
该代码使用的方法是滑动窗口
首先设立左指针a和右指针b
b指针向右侧伸缩{
对每个A【b】判断是否在之前的数组出现过;
如果出现,指针a指向出现过的位置的下一个位置;
更新右指针和最大长度;
}