处理方式,类似于滑动窗口的方式,一个m指针一直向后移动,一个i 指针只有当遇上不同的字符才会移动 #!/usr/bin/python # -*- coding: utf-8 -*- str1 = "aaagmbbbbaaaaafmm" #若a分别出现连续的两段,
处理方式,类似于滑动窗口的方式,一个m指针一直向后移动,一个i
指针只有当遇上不同的字符才会移动
# -*- 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