#Given a string, find the length of the longest substring without repeating characters.

#Example 1:
#Input: "abcabcbb"
#Output: 3
#Explanation: The answer is "abc", with the length of 3.

#Example 2:
#Input: "bbbbb"
#Output: 1
#Explanation: The answer is "b", with the length of 1.

#Example 3:
#Input: "pwwkew"
#Output: 3
#Explanation: The answer is "wke", with the length of 3.
             #Note that the answer must be a substring, "pwke" is a subsequence and not a substring.

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        if len(s) <= 1:
            return len(s)
        tmp = s[0]
        l = []
        for char in s[1:]:
            if char in tmp:
                i = tmp.find(char)
                tmp = tmp[i+1:]
            tmp += char
            l.append(len(tmp))
        return max(l)