题目
代码
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int size = s.length();
int len = 0;
int start = 0;
int end = 0;
int result = 0;
while (end < size)
{
char temp = s[end];
for (int index = start; index < end; index++)
{
if (s[index] == temp)
{
start = index+1;
len = end - start;
break;
}
}
end++;
len++;
result = max(len, result);
}
return result;
}
};
总结
运用的是滑动窗口的思路,循环刚开始引入的temp是当前字符,用该字符与之前遍历过的无重复子串进行逐个比较,若子串中有与该字符相等的,则将无重复子串的起始位置更新为该与temp重复的字符的位置的下一位,更新子串长度并退出。若子串中没有与temp相等的,则
子串长度加一,当前指针向后移动一位。最终,比较出最大的result即为所求。