遇到的错误
1、 "dvdf"失败
原因:做法是遇到一个重复的字符就清空数组,这种情况下就有问题了。
解决方案:遇到重复时,删掉重复的前面的所有字符
2、max() arg is an empty sequence
原因:传入可迭代对象为空时,必须指定参数default,用来返回默认值
解决方案:max((),default=1)
max()用法参考: link.
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
"""遍历每个元素
把元素存在一个数组中
检验后面进入的每个元素是否有相同的存在于数组中
如有相同 计算数组长度并存在长度数组中 创建一个新的数组 把后面的元素存在新的数组中
反之 把后面的元素添加在这个数组中"""
a=[]
i=0
max_a_nums=[]
while i<len(s):
if s[i] in a:
max_a_nums.append(len(a))
index=a.index(s[i])
a=a[index+1:]
a.append(s[i])
else:
a.append(s[i])
i+=1
max_a_nums.append(len(a))
return max(max_a_nums,default=0)