用户工具

站点工具


algorithm:most-char

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

algorithm:most-char [2010/06/02 01:18] (当前版本)
行 1: 行 1:
 +====== Python找出一串字符中出现最多的字符 ======
  
 +===== 问题要求 =====
 +
 +给定一个字符串,找出里面出现次数最多的字符。
 +
 +===== 算法思路 =====
 +
 +  - 将字符串变为列表,进行排序,相同的字母就会排到一起,重新生成新的字符串。
 +  - 遍历字符串,如果这个字符与前一个字符不一样,则在此字符前加上分隔符(例子中使用的分隔符为逗号:','​)
 +  - 将字符串分割为列表,并按照字符串长度排序,最后一个就为出现次数做多的字符
 +
 +===== Python实现 =====
 +
 +<code 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)
 +</​code>​
 +
 +输出结果:
 +<​code>​
 +#​$&&​((0233457789DEFFIJJLOSWadddddeffjkloqssssssww
 +ssssss 6
 +</​code>​
 +
 +===== 参考 =====
 +[[http://​www.cnblogs.com/​kenandalda/​archive/​2009/​09/​20/​1570617.html|JS找出一串字符中出现最多的字符]]
 + 
 + 
algorithm/most-char.txt · 最后更改: 2010/06/02 01:18 (外部编辑)