Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, the answer is "wke"
, with the length of 3. Note that the answer must be a substring, "pwke"
is a subsequenceand not a substring.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | class Solution: def lengthOfLongestSubstring( self , s): """ :type s: str :rtype: int """ res = startIndex = 0 m = {} for i in range ( len (s)): c = s[i] if c in m and startIndex < = m[c]: startIndex = m[c] + 1 else : res = max (res, i - startIndex + 1 ) m[c] = i return res #s = "" #s = "a" #s = "au" #s = "aabbb" s = "abcabcbb" #s = "bbbb" #s = "pwwkew" solution = Solution() res = solution.lengthOfLongestSubstring(s) print (res) |