本節(jié)主要實(shí)現(xiàn)以下目標(biāo):
1峰鄙、?實(shí)現(xiàn)Python獲取字符串中出現(xiàn)次數(shù)最多/少的字符
2、存在問題分析與處理
3、優(yōu)化方案
T1舒岸、實(shí)現(xiàn)Python獲取字符串中出現(xiàn)次數(shù)最多/少的字符:
T2、存在問題分析與處理:
? ??代碼說明:
1芦圾、max() 方法返回給定參數(shù)的最大值蛾派,參數(shù)可以為序列。詳細(xì)參考菜鳥教程个少。
2碍脏、Python count() 方法用于統(tǒng)計(jì)字符串里某個(gè)字符出現(xiàn)的次數(shù)∩运悖可選參數(shù)為在字符串搜索的開始與結(jié)束位置典尾。詳細(xì)參考菜鳥教程。
? ??代碼存在問題:
issue1糊探、輸入字符串可能是全英文字符钾埂,當(dāng)然也可能是非全英文字符。比如含中文字符科平、數(shù)字字符褥紫、特殊字符等等。這種情況下getmaxchar()將有可能不會(huì)返回預(yù)期值瞪慧。需要進(jìn)一步優(yōu)化髓考。
issue2、getminchar返回的值往往不是預(yù)期的值弃酌。如上面例子中氨菇,預(yù)期返回m儡炼,實(shí)際上返回的值卻是b。
????存在問題根因分析:
issue1查蓉、max方法中給定的參數(shù)序列為string.ascii_lowercase的執(zhí)行結(jié)果:'abcdefghijklmnopqrstuvwxyz'乌询。在使用count()方法計(jì)數(shù)時(shí),只能對(duì)序列中存在的字符進(jìn)行數(shù)目的統(tǒng)計(jì)豌研。
T3妹田、優(yōu)化方案
????優(yōu)化方案1:先去重,再將去重后的序列作為max鹃共、min的參數(shù)鬼佣。
case:中文字符串
case:全數(shù)字字符
Case:全特殊字符
Case:混合字符