题目:
思路
字符串长度为0,直接返回
字符串由同个字符组成,直接返回1
字符串去重后长度与原字符串长度相同,说明字符串由无重复字符组成,直接返回
除上述情况外,遍历,用哈希表来辅助,确认无重复字符的最大长度
代码
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
if len(s)==0:
return 0
if s.count(s[0])==len(s):
return 1
t = set(s)
counts=0
#无重复字符
if len(t)==len(s):
return len(s)
for i in range(len(s)-1):
dict1=set()
j =i
sums=0
while j<len(s) and s[j] not in dict1:
sums+=1
dict1.add(s[j])
j+=1
counts=max(counts,sums)
return counts