"""
3. Longest Substring Without Repeating Characters
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):
        if not s:
            return 0

        mlen = 1
        for i in range(len(s)-1):
            ls = [s[i]]
            for j in range(i+1, len(s)):
                if s[j] not in ls:
                    ls.append(s[j])
                    if j == len(s) - 1:
                        if len(ls) > mlen:
                            mlen = len(ls)
                else:
                    if len(ls)>mlen:
                        mlen = len(ls)
                    break
        return mlen
6a23ca2cbe4cd80fecabb13d276ed3337419ae32
<mask token>

<mask token>


class Solution:
    <mask token>

<mask token>


class Solution:

    def lengthOfLongestSubstring(self, s):
        if not s:
            return 0
        mlen = 1
        for i in range(len(s) - 1):
            ls = [s[i]]
            for j in range(i + 1, len(s)):
                if s[j] not in ls:
                    ls.append(s[j])
                    if j == len(s) - 1:
                        if len(ls) > mlen:
                            mlen = len(ls)
                else:
                    if len(ls) > mlen:
                        mlen = len(ls)
                    break
        return mlen

"""
3. Longest Substring Without Repeating Characters
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):
        if not s:
            return 0

        mlen = 1
        for i in range(len(s)-1):
            ls = [s[i]]
            for j in range(i+1, len(s)):
                if s[j] not in ls:
                    ls.append(s[j])
                    if j == len(s) - 1:
                        if len(ls) > mlen:
                            mlen = len(ls)
                else:
                    if len(ls)>mlen:
                        mlen = len(ls)
                    break
        return mlen