題目:
頭號通緝字母 The most wanted letter
給你一段文本膝蜈,其中包含不同的英文字母和標點符號。
你要找到其中那個出現(xiàn) 最多 的 字母吕粗,返回的字母必須是 小寫形式纺荧。
注意不要管標點符號、數(shù)字和空格颅筋,只要字母宙暇!如果你找到 兩個或兩個以上出現(xiàn)頻率相同的字母, 那么返回字母表中靠前的那個议泵。 例如“one”包含“o”占贫、“n”、“e”每個字母一次先口,因此我們選擇“e”型奥。
代碼實現(xiàn):
# coding: utf-8
def wanted(text):
target_letter = ''
target_count = 0
for i in range(len(text)):
count = text.count(text[i])
if not text[i].isalpha() or target_letter == text[i]:
# 避免重復判斷
continue
if count == target_count:
# 比較字母表順序
orders = [text[i], target_letter]
orders.sort()
target_letter = orders[0]
elif count > target_count:
target_count = count
target_letter = text[i]
return [target_letter, target_count]
res = wanted('abbc,,c,,,ccffffddddd')
print (res)
運行結(jié)果:
['d', 5]
這類算法可被用于密碼破解。