您的位置:首页 > 其它

[Leetcode] #3 Longest Substring Without Repeating Characters

2017-02-12 22:29 549 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: