首页 > 其他分享 >3. 无重复字符的最长子串

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

时间:2022-08-22 17:24:47浏览次数:57  
标签:子串 字符 hash max lk len table 最长

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度 (子串,连续,子序列,可以不连续)。

提示:

  • 0 <= s.length <= 5 * 104
  • s 由英文字母、数字、符号和空格组成
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        hash_table = dict()
        length = len(s)
        lk = 0
        max_len = 0
        for i in range(length):
            if s[i] not in hash_table:
                hash_table[s[i]] = i
                max_len = max(max_len, i - lk + 1)
            else:
                tmp = hash_table[s[i]] + 1
                for j in range(lk, tmp):
                    del(hash_table[s[j]])
                lk = tmp
                hash_table[s[i]] = i
        return max_len

 来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/add-two-numbers

标签:子串,字符,hash,max,lk,len,table,最长
From: https://www.cnblogs.com/celeven/p/16613497.html

相关文章