题目LT3
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3
输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1
输入: s = "pwwkew"
输出: 3
输入: s = ""
输出: 0
哈希表
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
N = len(s)
ans = 0
i = -1
dic = {}
for j in range(N):
if s[j] in dic:
i = max(i, dic[s[j]])
dic[s[j]] =j
ans = max(ans,j-i)
return ans
时间复杂度和空间复杂度都是O(N)