Znalazłem ten problem programistyczny, patrząc na ogłoszenie o pracy na SO. Pomyślałem, że to całkiem interesujące i jako początkujący programista Pythona spróbowałem go rozwiązać. Jednak uważam, że moje rozwiązanie jest dość ... niechlujne ... Czy ktoś może przedstawić sugestie, aby zoptymalizować go lub uczynić go czystszym? Wiem, że to dość trywialne, ale dobrze się bawiłem, pisząc to. Uwaga: Python 2.6Wyszukiwanie najczęstszej postaci w ciągu znaków
problem:
Write pseudo-kod (lub rzeczywisty kod) dla funkcji, które odbywają się w ciąg znaków i zwraca list, który pojawia się najczęściej w tego łańcucha.
Moja próba:
import string
def find_max_letter_count(word):
alphabet = string.ascii_lowercase
dictionary = {}
for letters in alphabet:
dictionary[letters] = 0
for letters in word:
dictionary[letters] += 1
dictionary = sorted(dictionary.items(),
reverse=True,
key=lambda x: x[1])
for position in range(0, 26):
print dictionary[position]
if position != len(dictionary) - 1:
if dictionary[position + 1][1] < dictionary[position][1]:
break
find_max_letter_count("helloworld")
wyjściowa:
>>>
('l', 3)
Updated przykład:
find_max_letter_count("balloon")
>>>
('l', 2)
('o', 2)
Przypadkowe uwaga: należy przeczytać [PEP 8] (http://www.python.org/dev/peps/pep-0008/), która dokumentuje zalecanej Python styl kodowania. Metody powinny być w snake_case, a nie mixedCase. –
możliwy duplikat [Jak znaleźć najpopularniejsze elementy listy?] (Http://stackoverflow.com/questions/3594514/how-to-find-most-common-elements-of-a-list) – kennytm
możliwy duplikat [Najczęstszy element Pythona na liście] (http://stackoverflow.com/questions/1518522/python-most-common-element-in-a-list) – nawfal