zoukankan      html  css  js  c++  java
  • 3. Longest Substring Without Repeating Characters

    Problem:

    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 (C++):

    int lengthOfLongestSubstring(string s) {
        int n = s.length();
        if (n == 0)  return 0;
        int pre = -1, cur_len = 0, len = 0;
        unordered_map<char, int> map;
        for (auto c : s)  map[c] = -1;
        
        for (int i = 0; i < n; ++i) {
            pre = max(pre, map[s[i]]);
            cur_len = i - pre;
            len = max(len, cur_len);
            map[s[i]] = i;
        }
        return len;
    }
    

    性能

    Runtime: 32 ms  Memory Usage: 8.7 MB

    思路

    Solution (C++):

    int lengthOfLongestSubstring(string s) {
        int n = s.length();
        if (n == 0)  return 0;
        unordered_map<char, int> map;
        int len = 0, last_len = 0;
        for (auto c : s)  map[c] = -1;
        
        for (int i = 0; i < n; ++i) {
            if (i - map[s[i]] <= last_len)
                last_len = i - map[s[i]];
            else 
                ++last_len;
            map[s[i]] = i;
            len = max(len, last_len);
        }
        return len;
    }
    

    性能

    Runtime: 32 ms  Memory Usage: 8.6 MB

    相关链接如下:

    知乎:littledy

    欢迎关注个人微信公众号:小邓杂谈,扫描下方二维码即可

    作者:littledy
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    CentOS之文件搜索命令locate
    CentOs之链接命令
    CentOs之常见目录作用介绍
    centOs之目录处理命令
    Query注解及方法限制
    Repository接口
    OkHttp和Volley对比
    Base64加密与MD5的区别?
    支付宝集成
    Android 中 非对称(RSA)加密和对称(AES)加密
  • 原文地址:https://www.cnblogs.com/dysjtu1995/p/12804829.html
Copyright © 2011-2022 走看看