#!/usr/bin/env python
# coding:utf-8

"""
无重复字符的最长子串

给定一个字符串，请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc"，所以其长度为 3。

示例 2:

输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b"，所以其长度为 1。

示例 3:

输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke"，所以其长度为 3。
     请注意，你的答案必须是 子串 的长度，"pwke" 是一个子序列，不是子串。


"""


class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        length = 0
        longest_sub = ''
        for start in range(len(s)):
            for stop in range(start+length, len(s)):
                sub = s[start: stop + 1]
                if len(set(sub)) != len(sub):
                    length_new = stop - start
                    if length_new > length:
                        length = length_new
                        longest_sub = sub[:-1]
                    break
                else:
                    length = stop - start + 1
                    longest_sub = s[start:stop + 1]
                pass
            pass
        print longest_sub, length
        return length


so = Solution()
print so.lengthOfLongestSubstring('pwwkew')
print so.lengthOfLongestSubstring('abcabcbb')
print so.lengthOfLongestSubstring(' ')
