力扣 无重复字符的最长子串 Python

力扣 无重复字符的最长子串 Python,第1张

目录

1 题目

2 题解

3 Python


1 题目

2 题解

依次遍历每一个不带有重复字符的子串,求其长度,获取最大值就是结果

3 Python
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        #如果字符串为空
        #边界
        if s=='':
            return 0
        #当前最长子串左侧字符所处的索引
        left=0
        #当前的最长子串
        char_set=set()
        #结果
        result=0
        #当前最长子串长度
        current_result=0
        #遍历字符串
        for i in s:
            current_result+=1
            #如果当前字符已经遍历过了
            #最长子串中包含重复的字符了
            #删除掉重复位置和重复位置之前的所有字符
            #形成新的最长子串
            while i in char_set:
                char_set.remove(s[left])
                #左位置右移
                left+=1
                #当前最长子串长度-1
                current_result-=1
            #新找到的最长子串长度
            if current_result>result:
                result=current_result
            #添加当前字符到最长子串中
            char_set.add(i)
        return result
        

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/918791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存