zoukankan      html  css  js  c++  java
  • 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;
        }
    };
    

      

  • 相关阅读:
    Spring Boot 使用 Dev-tool 热部署
    Spring Boot 上传文件
    Spring Boot 目录文件结构
    Spring MVC 文件上传
    Spring MVC 混合使用多种视图技术
    XmlViewResolver 和 ResourceBundleViewResolver
    XML 和 Json
    Excel 和 PDF
    04-树5 Root of AVL Tree (25 分)
    04-树4 是否同一棵二叉搜索树 (25 分)
  • 原文地址:https://www.cnblogs.com/kkrisen/p/7876066.html
Copyright © 2011-2022 走看看