ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Longest Substring Without Repeating Characters

2019-07-26 11:50:28  阅读:271  来源: 互联网

标签:substring max Substring start length Without answer Input Repeating


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

标签:substring,max,Substring,start,length,Without,answer,Input,Repeating
来源: https://www.cnblogs.com/CS-WLJ/p/11249332.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有