Discription:
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, 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.
Solution:
class Solution {
public:
int lengthOfLongestSubstring(string s) {
if (s.empty())
return 0;
int begin = 0, end = 0, maxlen = 1;
unordered_map<char, int> map0;
while (end<s.size()) {
while (end<s.size() && map0[s[end]] == 0) {
map0[s[end]] = 1;
end++;
}
maxlen = max(end - begin, maxlen);
while (map0[s[end]] == 1) {
map0[s[begin]] = 0;
begin++;
}
}
return maxlen;
}
};
GitHub-Leetcode:https://github.com/wenwu313/LeetCode