先上代码:
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
lis = []
count = 0
counts = [0]
for x in s:
if x in lis:
lis.append(x)
lis = lis[lis.index(x)+1:]
count = len(lis)
counts.append(count)
else:
lis.append(x)
count += 1
counts.append(count)
return max(counts)
语言:python
执行用时: 48 ms
内存消耗: 13.4 MB
说明:
lis 用于保存子串
count 记录子串长度
counts 子串长度列表
思路:
遍历字符串,如果字符x在list中,先添加进去,然后在从x在lis中所在位置的下一个位置开始切片,计算子串长度并记录;如果字符x不在lis中,添加进去,子串长度加1,并记录新的子串长度。
遍历完毕,返回,子串长度列表中的最大值。