Given a string, find the length of the longest substringwithout repeating characters.
Example 1:
Input: "abcabcbb"
Output: 3
Explanation: The answer is "abc"
, with the length of 3.
Example 2:
Input: "bbbbb"
Output: 1
Explanation: The answer is "b"
, with the length of 1.
Example 3:
Input: "pwwkew" Output: 3 Explanation: The answer is"wke"
, with the length of 3. Note that the answer must be a substring,"pwke"
is a subsequence and not a substring.
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int result = 0;
int flag = -1;
map<char,int> smap;
for(int i = 0;i<s.size();i++)
{
if(smap.count(s[i]) && smap[s[i]] > flag)
{
flag = smap[s[i]];
}
smap[s[i]] = i;
result = max(result,i-flag);
}
return result;
}
};