import sys # 题意:输出包含k种字符的最长子串长度 # O(n), n 是所给字符串的长度 # 分析:采用双指针,用map记录双指针中间的字符串是否满足要求 # eg:bccbbbdddddd, k = 3  输出12 k = int(sys.stdin.readline().strip()) string = sys.stdin.readline().strip() def solution(string,k):     ret = 0     start = 0     end = 0     m = {}     for i in range(len(string)):         m[string[i]] = m.get(string[i],0) + 1         end = i         while len(m) > k:             m[string[start]] -= 1             if m[string[start]] == 0:                 del m[string[start]]  # 删除此时的关键字             start += 1         ret = max(ret,end-start+1)     return ret res = solution(string,k) print(res) 第二题ac
点赞 3

相关推荐

牛客36400893...:我不是这个专业的,但是简历确实没有吸引我的亮点,而且废话太多没耐心看
0offer是寒冬太冷还...
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务