给定一个字符串,要求计算出最长的连续非重复子字符串的长度。比如:"abcabcdab"->4, "bbbb"->1,"dvdf"->3,"tmmzuxt"->5。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
bool used[256];
memset(used, 0, 256*sizeof(bool));
int maxLen = 0;
int begin = 0;
int end = 0;
int len = s.length();
while (end < len)
{
if (used[s[end]])
{
maxLen = max(maxLen, end-begin);
int i = begin;
for (;i < end; i++)
{
if (s[i] == s[end])
{
break;
}
used[s[i]] = false;
}
begin = i+1;
}
else
{
used[s[end]] = true;
}
end++;
}
maxLen = max(maxLen, end-begin);
return maxLen;
}
};