[Leetcode]Longest Substring with At Most Two Distinct Characters

4 篇文章 0 订阅

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值