給定一個字符串除秀,求其最長的沒有重復(fù)字符的子串的長度
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
__title__ = ''
__author__ = 'thinkreed'
__mtime__ = '17/3/3'
"""
class Solution:
def longest_substring(self, str):
start = max_length = 0
# 已出現(xiàn)過的字符字典, char -> index
usedChar = {}
for i in range(len(str)):
# 如果出現(xiàn)重復(fù)章郁,從當(dāng)前的后一位開始計算
if str[i] in usedChar:
start = usedChar[str[i]] + 1
# 最大長度計數(shù)隧膘,并將當(dāng)前字符加入字典
max_length = max(max_length, i - start + 1)
usedChar[str[i]] = i
return max_length
if __name__ == '__main__':
print(Solution().longest_substring("pwwkew"))