处理方式,类似于滑动窗口的方式,一个m指针一直向后移动,一个i
指针只有当遇上不同的字符才会移动

#!/usr/bin/python
# -*- coding: utf-8 -*-

str1 = "aaagmbbbbaaaaafmm" #若a分别出现连续的两段,若后一段出现的字母次数多,则取较大值

dict1={}
i=0


temp_zifu=str1[0]

for m in range(1,len(str1)):
if str1[m] != temp_zifu :
cisu = m - i
if temp_zifu not in dict1.keys():
dict1[temp_zifu]=cisu
else:
dict1[temp_zifu]=max(dict1[temp_zifu],cisu)
i = m #i只有在遇到不同字符才向后移动
temp_zifu=str1[m]

if str1[m] == temp_zifu and m==len(str1)-1: #处理最后相同字符的情况 aabbb
cisu = m - i+1
if temp_zifu not in dict1.keys():
dict1[temp_zifu] = cisu
else:
dict1[temp_zifu] = max(dict1[temp_zifu], cisu)

print dict1