Leetcode: Longest Substring Without Repeating Characters, Python3

987 / 987 test cases passed.
Status: Accepted
Runtime: 56 ms (beats 85.87% of submissions)
Memory Usage: 12.7 MB (beats 100.00% of submissions)

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        if len(s) <= 1: return len(s)

        start = 0
        end = 1
        longest = 1
        seen = {s[start]: 0}

        while end < len(s):
            if s[end] not in seen:
                seen[s[end]] = end
                end += 1
                if end - start > longest:
                    longest = end - start
            else: 
                newStart = seen[s[end]] + 1
                for i in range(start, newStart):
                    seen.pop(s[i])
                start = newStart

        return longest

More from Joshua
All posts