Buchstaben mit einer Häufigkeitstabelle zählen
Zählen Sie Zeichen mit einem dict oder Array
Buchstaben mit einer Häufigkeitstabelle zählen ist eine kostenlose Competitive Programming Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Competitive Programming Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Competitive Programming Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum Zeichen zählen
Bei unzähligen String-Aufgaben geht es letztlich um eine Frage: Wie oft kommt jedes Zeichen vor? Eine Häufigkeitstabelle beantwortet das in einem Durchlauf. 📊
Die Dict-Methode
Ein einfaches dict ordnet jedem Zeichen seine Anzahl zu. Es funktioniert für jedes Alphabet, einschließlich Unicode und Symbolen.
freq = {}
for ch in 'apple':
freq[ch] = freq.get(ch, 0) + 1
print(freq)get() vermeidet KeyError
get(ch, 0) gibt 0 zurück, wenn der Schlüssel fehlt. Dadurch beginnt ein Buchstabe beim ersten Auftreten sauber mit dem Wert eins.
Counter erledigt das für Sie
Die Klasse Counter aus collections erstellt die gesamte Tabelle in einer einzigen Zeile. Sie ist bei Programmierwettbewerben wegen ihrer Geschwindigkeit und Übersichtlichkeit sehr beliebt.
from collections import Counter
freq = Counter('apple')
print(freq['p']) # 2Fehlende Schlüssel liefern null
Ein Counter löst bei einem fehlenden Schlüssel nie einen Fehler aus. Wenn Sie nach einem nie gesehenen Buchstaben fragen, erhalten Sie einfach 0, sodass Ihr Code ohne zusätzliche Verzweigung auskommt.
from collections import Counter
c = Counter('abc')
print(c['z']) # 0Die Methode mit einem festen Array
Für ausschließlich Kleinbuchstaben ist eine Liste mit 26 Plätzen noch schneller. Indizieren Sie jeden Buchstaben mit einer ord-Berechnung und erhöhen Sie den Zähler.
cnt = [0] * 26
for ch in 'apple':
cnt[ord(ch) - ord('a')] += 1Abwägung zwischen Array und Dict
Das Array ist am schnellsten, eignet sich aber nur für ein bekanntes, kleines Alphabet. Das dict oder Counter verarbeitet beliebige Zeichen zu geringen Zusatzkosten.
Das häufigste Zeichen finden
Counter stellt most_common(k) bereit. Die Methode gibt die k häufigsten Zeichen bereits nach ihrer Häufigkeit sortiert zurück. Eine manuelle Sortierung ist nicht nötig.
from collections import Counter
print(Counter('mississippi').most_common(1))Zwei Tabellen vergleichen
Zwei Strings sind genau dann Anagramme, wenn ihre Häufigkeitstabellen übereinstimmen. Zwei Counter zu vergleichen, ist in einer Zeile möglich.
from collections import Counter
print(Counter('listen') == Counter('silent')) # TrueEin Durchlauf genügt
Das Erstellen der Tabelle benötigt O(n), also einen einzigen Durchlauf durch den String. Danach ist jede Suche in konstanter Zeit möglich.
Durch Subtraktion Überschüsse finden
Counter unterstützen die Subtraktion. So können Sie erkennen, welche Zeichen in einem String vorkommen, aber im anderen fehlen. Das ist ideal für Aufgaben im Stil von Ransom Notes.
from collections import Counter
print(Counter('aabb') - Counter('ab'))Kurze Überprüfung
Eine Frage zum Zählen von Zeichen.
Zusammenfassung
Sie können Zeichen jetzt mit einem dict, einem Counter oder einem Array mit 26 Plätzen zählen und diese Tabellen verwenden, um Anagramme zu prüfen und häufige Buchstaben zu finden. 🎉
Häufig gestellte Fragen
Ist die Lektion „Buchstaben mit einer Häufigkeitstabelle zählen“ kostenlos?
Ja — der vollständige Text von „Buchstaben mit einer Häufigkeitstabelle zählen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Competitive Programming Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Competitive Programming Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Buchstaben mit einer Häufigkeitstabelle zählen“?
Zählen Sie Zeichen mit einem dict oder Array Du übst Competitive Programming Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Competitive Programming Academy zu starten?
Keine Vorkenntnisse erforderlich. Competitive Programming Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Buchstaben mit einer Häufigkeitstabelle zählen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Competitive Programming Academy-Lektion Code schreiben und ausführen?
Ja. Jede Competitive Programming Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Zeichen sowie Tricks mit ord und chr
- Buchstaben mit einer Häufigkeitstabelle zählen
- Palindromprüfungen richtig durchführen
- Wörter teilen, bereinigen und wieder verbinden