1:找出字符串s="aaabbbccceeefff111144444"中,字符出现次数最多的字符
(1)考虑去重。
首先将字符串进行过滤去重,这样在根据这些字符进行循环查询时,将会减少循环次数,提升效率。但是本人写的代码较为臃肿,有更好的希望留言评论
`小狐狸这儿有一个免费分享编程 Python相关学习资料的基地688244617 快来加入吧!
str =` 'a1fsfs111bbbcccccvvvvvnnnnboooooosssnb'
class Countvalue():
def countvalue(self, str1):
'''
利用set自身的去重功能
:param str1: 对传进来的字符串过滤
:return: 返回一个不含重复字符的list
'''
list1 = []
result = []
for x in str1:
list1.append(x)
result = set(list1)
return result
def count(self, str1):
'''
对已经去重的list进行遍历,因已去重
从而减少循环次数,提高检索效率
:param str1:
:return:
'''
list = Countvalue().countvalue(str1)
a = 0
tump = {}
for x in list:
test = str1.count(x)
if test > a:
tump.clear()
a = test
tump[x] = a
elif test == a:
a = test
tump[x] = a
return tump
if __name__ == '__main__':
print(Countvalue().count(str))
(2)不考虑去重
s = "xssdddeeeeeeeffff"
max_times = 0
result = {}
for i in s:
if s.count(i) > max_times:
result.clear()
result[i] = s.count(i)
max_times = s.count(i)
elif s.count(i) == max_times:
result[i] = s.count(i)
print result
还有大量免费Python资料+688244617 快来自行领取吧!
---------------------