Given a string S, find the length of the longest substring T that contains at most two distinct characters.
For example,
Given S
= “eceba”,
T is "ece" which its length is 3.
给定一个字符串S,找到最长的子字符串T使得T里最多含有2个不同的字母~
设定数组count,储存字母出现的次数;numOfDistinct 记录当前子字符串不同字母的个数~代码如下~
def longestSubstring(s):
if s is None or len(s) == 0: return 0
count = [0] * 256
i = 0; numOfDistinct = 0; maxLen = 0
for j in xrange(len(s)):
if count[s[j]] == 0: numOfDistinct += 1
count[s[j]] += 1
while numOfDistinct > 2:
count[s[i]] -= 1
if count[s[i]] == 0: numOfDistinct -= 1
i += 1
maxLen = max(maxLen, j - i + 1)
return maxLen

本文介绍了一种算法,用于找出给定字符串中最长的、只包含两种不同字符的子串,并提供了一个Python函数实现。
716

被折叠的 条评论
为什么被折叠?



