本节主要实现以下目标:
1、 实现Python获取字符串中出现次数最多/少的字符
2、存在问题分析与处理
3、优化方案
T1、实现Python获取字符串中出现次数最多/少的字符:

T2、存在问题分析与处理:
代码说明:
1、max() 方法返回给定参数的最大值,参数可以为序列。详细参考菜鸟教程。
2、Python count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。详细参考菜鸟教程。
代码存在问题:
issue1、输入字符串可能是全英文字符,当然也可能是非全英文字符。比如含中文字符、数字字符、特殊字符等等。这种情况下getmaxchar()将有可能不会返回预期值。需要进一步优化。
issue2、getminchar返回的值往往不是预期的值。如上面例子中,预期返回m,实际上返回的值却是b。
存在问题根因分析:
issue1、max方法中给定的参数序列为string.ascii_lowercase的执行结果:'abcdefghijklmnopqrstuvwxyz'。在使用count()方法计数时,只能对序列中存在的字符进行数目的统计。
T3、优化方案
优化方案1:先去重,再将去重后的序列作为max、min的参数。

case:中文字符串

case:全数字字符

Case:全特殊字符

Case:混合字符

网友评论