Longest Substring with At Most Two Distinct Characters – Leetcode Challenge – Python Solution

This is the python solution for the Leetcode problem – Longest Substring with At Most Two Distinct Characters – Leetcode Challenge – Python Solution.

Source – qiyuangong’s repository.

class Solution(object):
    def lengthOfLongestSubstringTwoDistinct(self, s):
        """
        :type s: str
        :rtype: int
        """
        i, j, maxLen = 0, -1, 0
        # i for start, k for end, j for latest pos contains different character from k
        for k in range(1, len(s)):
            if s[k] == s[k - 1]:
                continue
            if j >= 0 and s[j] != s[k]:
                maxLen = max(k - i, maxLen)
                # update i
                i = j + 1
            # update
            j = k - 1
        return max(len(s) - i, maxLen)