3.无重复字符的最长子串
3.1题目
3.2 解决方法
方法一:方法 速度:32ms
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
char_index = {}
max_length = 0
#子串开始位置
start = 0
for index, char in enumerate(s):
if char in char_index and char_index[char] >= start:
# 更新子串开始位置
start = char_index[char] + 1
# 更新字符的最新索引
char_index[char] = index
# 计算当前子串长度,并更新最长长度
max_length = max(max_length, index - start + 1)
return max_length
3.3enumerate函数
enumerate() 函数属于非常有用的高级用法,而对于这一点,很多初学者甚至中级学者都没有意识到。这个函数的基本应用就是用来遍历一个集合对象,它在遍历的同时还可以得到当前元素的索引位置。
例子:
names = 'Alice'
for index,value in enumerate(names):
print(f'{index}: {value}')
结果:
0: A
1: l
2: i
3: c
4: e