无重复字符的最长子串
- 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
def two_sum(s):
result = 0
occ = set()
n = len(s)
rk, ans = -1, 0
for i in range(n):
if i != 0:
occ.remove(s[i-1])
while rk + 1 < n and s[rk + 1] not in occ:
occ.add(s[rk + 1])
rk += 1
ans = max(ans, rk - i + 1)
return result
def t(s):
result = 0
lit = []
for i in s:
if i not in lit: # 没有遇到重复的加入列表,并判断当前最大值
lit.append(i)
result = max(result, len(lit))
else: # 遇到重复的则移除第一个
lit.pop(0)
return result
if __name__ == '__main__':
r = t('pwwkew')
print(r)
看了力扣官方的示例,然后debug了一下,有点懂过程了。然后再自己用列表实现,debug一下,有点疑问。。。感觉题目还没读懂!