Given a string s, find the length of the longest substring without repeating characters.
Example 1:
Input: s = "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2:
Input: s = "bbbbb" Output: 1 Explanation: The answer is "b", with the length of 1. Example 3:
Input: s = "pwwkew" Output: 3 Explanation: The answer is "wke", with the length of 3. Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
if len(s) == 0:
return 0
longest = 1
for index, str in enumerate(s):
str_dict = {}
found = s.find(str, index + 1)
if found != -1:
substring = s[index:found]
else:
substring = s[index:]
if len(substring) > longest:
for x in substring:
if str_dict.get(x) is not None:
break
if str_dict.get(x) is None:
str_dict[x] = 1
if len(str_dict) > longest:
longest = len(str_dict)
print(longest)
return longest
sol = Solution()
sol.lengthOfLongestSubstring('pwwkew')