Python leetcode #3 Longest Substring Without Repeating Characters

xiaoxiao2021-02-27  240

leetcode #2 Longest Substring Without Repeating Characters


筒子们要注意啊,输入”pwwkew”,最大不重复字符串是”wke”,而”pwke” 是最大子序列。 下面开始分析 1. 把初始长度和最大长度都设为1 2. 新建一个遍历过的字符字典 3. 如果s[i]在字典中且开始的位置小于等于当前遍历的位置 4. 开始位置等于当前位置加一 5. 否则,最大长度等于max(最大长度,i-start+1) 6. 把当前位置赋给usedChar[s[i]] 7. 循环完后返回最大长度 8. 时间复杂度为O(n)

下面贴代码

class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ start = maxLength = 0 usedChar = {} for i in range(len(s)): if s[i] in usedChar and start <= usedChar[s[i]]: start = usedChar[s[i]] + 1 else: maxLength = max(maxLength, i - start +1) usedChar[s[i]] = i return maxLength
转载请注明原文地址: https://www.6miu.com/read-7256.html

最新回复(0)