public class Solution {
public int LengthOfLongestSubstring(string s) {
if (s == null || s == "")
return 0;
int n = s.Length;
HashSet<char> hs = new HashSet<char>();
int ans = 0, start = 0, stop = 0;
while (start < n && stop < n)
{
if (!hs.Contains(s[stop]))
{
hs.Add(s[stop++]);
ans = Math.Max(ans, stop - start);
}
else
{
hs.Remove(s[start ++]);
}
}
return ans;
}
}