Longest Substring with At Most Two Distinct Characters(map)
Given a strings, find the length of the longest substring _t _that containsat most2 distinct characters.
Example 1:
Input:
"eceba"
Output:
3
Explanation:
t
is "ece" which its length is 3.
Example 2:
Input:
"ccaabbb"
Output:
5
Explanation:
t
is "aabbb" which its length is 5.
分析
用模板
class Solution:
def lengthOfLongestSubstringTwoDistinct(self, s: str) -> int:
mmap = collections.defaultdict(int)
ss=e=d=counter = 0
l = len(s)
while e < l:
if mmap[s[e]] == 0:
counter += 1
mmap[s[e]] += 1
e += 1
while counter > 2:
if mmap[s[ss]] == 1:
counter -= 1
mmap[s[ss]] -= 1
ss += 1
d = max(d, e - ss)
return d
Last updated
Was this helpful?