问题要求
给定一个字符串,找出里面出现次数最多的字符。
算法思路
- 将字符串变为列表,进行排序,相同的字母就会排到一起,重新生成新的字符串。
-
遍历字符串,如果这个字符与前一个字符不一样,则在此字符前加上分隔符(例子中使用的分隔符为逗号:',')
- 将字符串分割为列表,并按照字符串长度排序,最后一个就为出现次数做多的字符
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 =
'&(&$#(JFLSDJFOIWEfdjsklfewosd2
378907345asdsdwsdqs'
find_most_char(s)