美文网首页
#3 Longest Substring Without Rep

#3 Longest Substring Without Rep

作者: BinaryWoodB | 来源:发表于2019-01-09 23:50 被阅读0次

Description

tags: Linked list, Math

Given a string, find the length of the longest substring without 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.

Solution

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int l = 0, maxLen = 0;
        map<char, vector<int>> dict;

        for (int r=0; r<s.size(); r++) {
            if (dict.find(s[r]) != dict.end()) {
                l = max(l, dict[s[r]].back() + 1);
            }
            dict[s[r]].push_back(r);
            maxLen = max(maxLen, r - l + 1);
        }
        return maxLen;
    }
};

Analysis

Time: O(n^3)
Space: O(1)

相关文章

网友评论

      本文标题:#3 Longest Substring Without Rep

      本文链接:https://www.haomeiwen.com/subject/injirqtx.html