LeetCode 3.无重复字符串的最长子串

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        # 字符串str。找出其中不含有重复字符的最长子串的长度。
        
        hash_set = set()
        n = len(s)
        r = 0
        res = 0
        
        
        for i in range(n):    
            if i != 0 :
                hash_set.remove(s[i-1]) # 移除重复的前部元素

                
            while r < n and s[r] not in hash_set: # 移动右指针→,判断s[r]是否重复出现过
                hash_set.add(s[r])                # 没用出现 且 不越界,添加值到哈希集合中
                r += 1                            # 右移指针
                
            res= max(r-i,res)                     # 判取最大值(新的子串距离和原先的子串距离)
                
         
        return res

 

posted @ 2020-05-02 22:41  L1m1t  阅读(117)  评论(0编辑  收藏  举报