0Pricing
Coding Interview Prep · Lekcja

Zliczanie liter za pomocą tabeli częstości

Zliczanie znaków przy użyciu dict lub tablicy

Zliczanie liter za pomocą tabeli częstości to bezpłatna lekcja Coding Interview Prep na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Coding Interview Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Coding Interview Prep zawiera 4 lekcji w sumie.

Dlaczego zliczać znaki

Mnóstwo zadań dotyczących napisów sprowadza się do jednego pytania: jak często występuje każdy znak? Tabela częstości odpowiada na nie w jednym przebiegu. 📊

Sposób ze słownikiem

Zwykły dict mapuje każdy znak na jego licznik. Działa dla dowolnego alfabetu, w tym dla Unicode i symboli.

freq = {}
for ch in 'apple':
    freq[ch] = freq.get(ch, 0) + 1
print(freq)

get() unika KeyError

Użycie get(ch, 0) zwraca 0, gdy brakuje klucza, więc przy pierwszym napotkaniu litera zaczyna zliczanie od jedynki.

Counter zrobi to za Państwa

Klasa Counter z collections buduje całą tabelę w jednym wierszu. Jest ulubionym rozwiązaniem w zadaniach konkursowych ze względu na szybkość i przejrzystość.

from collections import Counter
freq = Counter('apple')
print(freq['p'])  # 2

Brakujące klucze zwracają zero

Counter nigdy nie zgłasza błędu dla brakującego klucza. Zapytanie o literę, której nie napotkano, zwraca po prostu 0, dzięki czemu kod nie wymaga dodatkowych gałęzi.

from collections import Counter
c = Counter('abc')
print(c['z'])  # 0

Sposób ze stałą tablicą

Dla samych małych liter lista z 26 polami jest jeszcze szybsza. Indeksuj każdą literę za pomocą obliczeń z ord i zwiększaj licznik.

cnt = [0] * 26
for ch in 'apple':
    cnt[ord(ch) - ord('a')] += 1

Kompromis: tablica czy słownik

Tablica jest najszybsza, ale pasuje tylko do znanego, małego alfabetu. dict lub Counter obsłuży dowolne znaki niewielkim kosztem.

Znajdź najczęstsze

Counter udostępnia most_common(k), które zwraca k najczęstszych znaków, już posortowanych według częstości. Nie trzeba sortować ich ręcznie.

from collections import Counter
print(Counter('mississippi').most_common(1))

Porównaj dwie tabele

Dwa napisy są anagramami dokładnie wtedy, gdy ich tabele częstości są identyczne. Porównanie dwóch obiektów Counter zajmuje jeden wiersz.

from collections import Counter
print(Counter('listen') == Counter('silent'))  # True

Wystarczy jeden przebieg

Zbudowanie tabeli zajmuje O(n), czyli wymaga jednego przejścia po napisie. Później każde wyszukiwanie ma stały czas działania.

Odejmij, aby znaleźć nadmiar

Obiekty Counter obsługują odejmowanie, dzięki czemu można wykryć, których znaków jeden napis zawiera więcej niż drugi. To świetne rozwiązanie dla zadań typu ransom note.

from collections import Counter
print(Counter('aabb') - Counter('ab'))

Szybkie sprawdzenie

Jedno pytanie dotyczące zliczania znaków.

Podsumowanie

Można teraz zliczać znaki za pomocą dict, obiektu Counter lub tablicy z 26 polami, a następnie używać tych tabel do sprawdzania anagramów i znajdowania najczęstszych liter. 🎉

Często zadawane pytania

Czy lekcja „Zliczanie liter za pomocą tabeli częstości” jest bezpłatna?

Tak — pełny tekst „Zliczanie liter za pomocą tabeli częstości” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Coding Interview Prep, przejdź na CoddyKit PRO. Kurs Coding Interview Prep zawiera 4 lekcji w sumie.

Co nauczysz się w „Zliczanie liter za pomocą tabeli częstości”?

Zliczanie znaków przy użyciu dict lub tablicy Ćwiczysz Coding Interview Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Coding Interview Prep?

Nie wymagamy żadnego doświadczenia. Coding Interview Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Zliczanie liter za pomocą tabeli częstości”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Coding Interview Prep?

Tak. Każda lekcja Coding Interview Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Sztuczki z znakami, ord i chr
  2. Zliczanie liter za pomocą tabeli częstości
  3. Poprawne sprawdzanie palindromów
  4. Dzielenie, stripowanie i ponowne łączenie słów
← Powrót do Coding Interview Prep