Leetcode 3. Longest Substring Without Repeating Characters

Posted KRisen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 3. Longest Substring Without Repeating Characters相关的知识,希望对你有一定的参考价值。

Problem reference: https://leetcode.com/problems/longest-substring-without-repeating-characters

// My solution:
// A simple dp, the key point is that the substring is serialy.

// Traverse every node and regard it as the end point,
// then we can figure out the state transition equation:
/*
    if (there was no duplicated letter before)
        answer[now] =  answer[now-1] + 1;
    else
        answer[now] = min(distance between the duplicated letters, answer[now-1] + 1)
*/

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        if (s.size() <= 1) return s.size();
        // Store the last position for a letter.
        std::map<char,int> last_char;
        std::map<char,int>::iterator it;
        
        // Store the optimum answer for every node.
        std::vector<int> rec;
        int ans = 0;
        for (int i=0;i<s.size();i++) {
            // Initialize value as result for current node.
            rec.push_back(1);
            it = last_char.find(s[i]);
            // Special handling of the initial character.
            if (i == 0) {
                last_char[s[i]] = i;
                continue;
            }
            if (it == last_char.end()) {
                rec[i] = rec[i-1] + 1;
            } else {
                rec[i]=min((i-(it->second)), rec[i-1] + 1);
            }
            last_char[s[i]] = i;
            ans = max(ans, rec[i]);
        }
        return ans;
    }
};

  

以上是关于Leetcode 3. Longest Substring Without Repeating Characters的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 3. Longest Substring Without Repeating Characters

LeetCode 3. Longest Substring Without Repeating

3. 没有重复字母的最长子串 [leetcode 3: Longest Substring Without Repeating Characters]

3. 没有重复字母的最长子串 [leetcode 3: Longest Substring Without Repeating Characters]

leetcode longest consecutive sequence

leetcode 3. Longest Substring Without Repeating Characters (Python版)