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

    Longest Substring Without Repeating Characters leetcode

    Medium

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

    Code

    class Solution:
        def lengthOfLongestSubstring(self, s: str) -> int:
            start = -1
            max = 0
            # dictionary d
            d = {} 
            for i in range(len(s)):
                if s[i] in d and d[s[i]] > start:
                    start = d[s[i]]
                    d[s[i]] = i
                else:
                    d[s[i]] = i
                    if i - start > max:
                        max = i - start
            return max
            
    

    Sample 3 Explaination

    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.
    
    Start state: d = {} start = -1(because if  string s is empty ,return 1,if start = 0,then i - start = 0,so initialize start = -1) ,max = 0(longest substring without repeating characters)
    
    idstartmax
    i = 0 {'p':0} -1 1
    i = 1 {'p':0,'w':1} -1 2
    i = 2 {'p':0,'w':2} 1 2
    i = 3 {'p':0,'w':2,'k':3} 1 2
    i = 4 {'p':0,'w':2,'k':3,'e':4} 2 1
    i = 5 {'p':0,'w':5,'k':3,'e':4} 2 3
  • 相关阅读:
    模拟实现ajax加载框
    京东晒单的js实现
    微信分享js代码(转载)
    css模拟实现selec下拉框
    网页端实现输入卡号四字隔开
    返回顶部的动态显示与隐藏
    js等比例缩放图片(转载)
    css模拟实现checkbox
    quartz的使用 Mr
    Spring声明式事务配置管理方法 Mr
  • 原文地址:https://www.cnblogs.com/CS-WLJ/p/11249332.html
Copyright © 2011-2022 走看看