leetcode python3 无重复字符的最长子串

代码思路:j 表示子串终止位置,i表示字串起始位置 当未出现重复时,字符串的长度即为字符串的结束位置减去起始位置。发生重复时,重新利用字符串的结束位置j减去新的起始位置i,并与之前的未重复字串的长度作比较取较大者

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        s1 = {}
        i, res = 0, 0
        for j in range(len(s)):
            if s[j] in s1:
                i = max(s1[s[j]], i)
            res = max(res, j - i + 1)
            s1[s[j]] = j + 1
        return res;
发布了30 篇原创文章 · 获赞 0 · 访问量 314

猜你喜欢

转载自blog.csdn.net/m0_37656366/article/details/104891071