12 Stimmen

Suche nach dem häufigsten Zeichen in einer Zeichenkette

Ich bin auf dieses Programmierproblem gestoßen, als ich mir eine Stellenausschreibung auf SO ansah. Ich fand es ziemlich interessant und als Python-Anfänger habe ich versucht, es zu lösen. Allerdings habe ich das Gefühl, dass meine Lösung ziemlich...unordentlich ist...kann mir jemand Vorschläge machen, wie ich sie optimieren oder sauberer machen kann? Ich weiß, es ist ziemlich trivial, aber es hat mir Spaß gemacht, es zu schreiben. Anmerkung: Python 2.6

Das Problem:

Schreiben Sie Pseudocode (oder tatsächlichen Code) für eine Funktion, die eine Zeichenkette aufnimmt und den Buchstaben zurückgibt, der in dieser Zeichenkette am häufigsten vorkommt.

Mein Versuch:

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")

Sortie :

>>> 
('l', 3)

Aktualisiertes Beispiel:

find_max_letter_count("balloon") 
>>>
('l', 2)
('o', 2)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X