3. Longest Substring Without Repeating Characters {Medium}

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.

解题思路提示,两个指针
My silly solution:

class Solution:
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        if len(s) <= 1: return len(s)
        i = 0
        j = 1
        target = ''
        sub = s[i:j]
        while i < len(s) and j < len(s):
            if s[j] not in sub:
                sub = s[i:j+1]
                if len(target) < len(sub):
                    target = sub
                j = j + 1
                continue
            else:
                sub = s[i+1:j]
                i = i + 1
                continue
        return len(target)

leo39032506 better solution:

class Solution:
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        ans = 0
        sub = ''
        for char in s:
            if char not in sub:
                sub += char
                ans = max(ans, len(sub))
            else:
                cut = sub.index(char)
                sub = sub[cut+1:] + char
        return ans
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,448评论 0 10
  • 【学号】 2017101121 【姓名】 赵丽 【性别】 女 【城市】 大同市 【简书号】 121赵丽 【擅长】 ...
    121赵丽阅读 288评论 1 0