#练习题1:请大家找出s="aabbccddxxxxffff"中,字母出现次数最多的字母
算法1:
# 遍历所有的字符,把每一个字符出现的次数,
# 用count函数做一个统计,声明一个存储最大值的字典对象,
# 遍历的时候动态判断当前字符出现的字符数字是否比字典中的最大值更大
# 如果等于则也存进去
# 如果小于则忽略,如果大于则把字典中的内容清空掉,
# 把当前的字母作为key,次数作为value存进去
`
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
`
# 算法2:
# 使用map和len和max函数
# 找到最大的字母出现次数
# 然后遍历字符串判断哪些字母的出现次数等于最大的字母出现次数
# 然后依次保存起来。
`
s = "aabbbcccddffffffff"
times = map(lambda x: s.count(x), s)
print times
max_time = max(times)
print max_time
result = filter(lambda x: s.count(x) == max_time, s)
print list(set(result))
`
#算法3:
# 遍历每一个字母算出出现的次数,存到一个字典里
# 然后找到最大的字典存储的value
# 遍历这个字典,哪些key存储的值等于最大的value,那么这些值就是结果
`
s = "xssdddeeeeeeeffff"
result = {}
for i in s:
letter_count = s.count(i)
result[i] = letter_count
max_times = max(result.values())
print max_times
for k in result.keys():
if result[k] == max_times:
print k
`
#一行代码解决的问题
`
print list(set(filter(lambda x:s.count(x)==max(map(lambda x:s.count(x),s)),s)))
AI 代码解读
本文转自 知止内明 51CTO博客,原文链接:http://blog.51cto.com/357712148/2053124,如需转载请自行联系原作者