Tôi đã tìm thấy vấn đề về lập trình này trong khi xem xét việc đăng bài trên SO. Tôi nghĩ nó khá thú vị và là một lập trình viên Python mới bắt đầu tôi đã cố gắng giải quyết nó. Tuy nhiên tôi cảm thấy giải pháp của tôi khá ... lộn xộn ... ai có thể đưa ra bất kỳ gợi ý nào để tối ưu hóa nó hay làm cho nó sạch hơn không? Tôi biết nó khá tầm thường, nhưng tôi đã vui vẻ viết nó. Lưu ý: Python 2.6Tìm ký tự thường xuyên nhất trong chuỗi
Vấn đề:
Viết pseudo-code (hoặc mã thực tế) cho một chức năng mà mất trong một chuỗi và trả về bức thư đó xuất hiện nhiều nhất trong chuỗi đó.
nỗ lực của tôi:
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")
Output:
>>>
('l', 3)
Cập nhật Ví dụ:
find_max_letter_count("balloon")
>>>
('l', 2)
('o', 2)
Ghi chú ngẫu nhiên: bạn nên đọc [PEP 8] (http://www.python.org/dev/peps/pep-0008/), tài liệu đề xuất kiểu mã hóa Python được khuyến nghị. Các phương thức nên trong snake_case chứ không phải là mixedCase. –
bản sao có thể có của [Cách tìm các phần tử phổ biến nhất trong danh sách?] (Http://stackoverflow.com/questions/3594514/how-to-find-most-common-elements-of-a-list) – kennytm
có thể trùng lặp của [Python phần tử phổ biến nhất trong danh sách] (http://stackoverflow.com/questions/1518522/python-most-common-element-in-a-list) – nawfal