加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Python找出一串字符中出现最多的字符

(2017-12-26 09:41:12)
标签:

python

杂谈

分类: 人工智能

 

问题要求

给定一个字符串,找出里面出现次数最多的字符。

 

算法思路

  1. 将字符串变为列表,进行排序,相同的字母就会排到一起,重新生成新的字符串。
  2. 遍历字符串,如果这个字符与前一个字符不一样,则在此字符前加上分隔符(例子中使用的分隔符为逗号:',')
  3. 将字符串分割为列表,并按照字符串长度排序,最后一个就为出现次数做多的字符

 

Python实现

def find_most_char(s):
  l = [c for c in s]
  l.sort()
  s = "".join(l)
  print s
  l = [s[i-1]==s[i] and s[i] or "," + s[i] for i in range(len(s))]
  s = "".join(l)
  l = s.split(',')
  l.sort(lambda x,y: cmp(len(x), len(y)))
  print l[-1], len(l[-1])
 
if __name__ == "__main__":
  s = "&(&$#(JFLSDJFOIWEfdjsklfewosd2378907345asdsdwsdqs"
  find_most_char(s)

 

 

输出结果:

#$&&((0233457789DEFFIJJLOSWadddddeffjkloqssssssww
ssssss 6

 

参考

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有