Mengelompokkan dan Mengategorikan dengan Map
Mengelompokkan anagram dan item serupa
Mengelompokkan dan Mengategorikan dengan Map adalah pelajaran Coding Interview Prep gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Coding Interview Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Coding Interview Prep mencakup 4 pelajaran total.
Pengelompokan adalah Pola
Banyak soal meminta Anda mengelompokkan item yang memiliki kesamaan. Pemetaan dari kunci ke wadah mengubahnya menjadi satu lintasan yang rapi. 🗂️
Pilih Kunci Pengelompokan
Inti triknya adalah memilih kunci yang sama untuk item-item dalam kelompok yang sama. Jika Anda tepat memilihnya, sisanya menjadi mudah.
Membuat Wadah dengan defaultdict
Gunakan defaultdict(list) agar setiap kunci baru memulai wadah kosong. Anda dapat menambahkan item dengan append tanpa pernah memeriksa apakah kunci tersebut ada.
from collections import defaultdict
buckets = defaultdict(list)Perulangan Inti
Untuk setiap item, hitung kuncinya lalu append item tersebut ke wadah milik kunci itu. Satu baris untuk setiap elemen mengelompokkan semuanya.
for word in words:
buckets[key_of(word)].append(word)Mengelompokkan Anagram
Anagram memiliki huruf yang sama setelah diurutkan, jadi string yang telah diurutkan merupakan kunci kelompok yang sempurna. Urutkan sekali, lalu masukkan berdasarkan kunci tersebut.
k = ''.join(sorted(word))
buckets[k].append(word)Kunci Tuple untuk Hitungan
Saat pengurutan lambat, tuple berisi jumlah huruf juga dapat digunakan sebagai kunci. Tuple dapat di-hash, sehingga dapat dimasukkan ke dalam dict dengan rapi.
k = tuple(Counter(word)[c] for c in 'abcdefghijklmnopqrstuvwxyz')Membuat Wadah Berdasarkan Sifat
Kelompokkan angka berdasarkan sisa, paritas, atau panjang hanya dengan mengubah kuncinya. Polanya tetap sama di berbagai soal.
for n in nums:
buckets[n % 3].append(n)Gagasan Pengurutan Berbasis Wadah
Saat nilai berada dalam rentang kecil, masukkan masing-masing ke dalam wadah berindeks lalu bacalah secara berurutan. Itulah pengurutan yang mendekati linear.
for x in nums:
bucket[x].append(x)Kumpulkan Hasil
Setelah pembuatan wadah selesai, jawaban biasanya berupa values dari dict. Konversikan menjadi list jika juri menginginkan kelompoknya secara langsung.
result = list(buckets.values())Menghitung per Kelompok
Jika Anda hanya memerlukan ukuran kelompok, masukkan item ke dalam Counter atau jumlahkan panjangnya di akhir. Pilihlah sesuai dengan yang sebenarnya diminta soal.
sizes = {k: len(v) for k, v in buckets.items()}Mengapa Pemetaan Lebih Unggul
Pengelompokan dengan map membutuhkan O(n), bukan perbandingan setiap pasangan. Kunci yang di-hash melakukan pencocokan untuk Anda.
Pemeriksaan Cepat
Anda ingin mengelompokkan kata agar anagram masuk ke wadah yang sama.
Ringkasan
Kelompokkan dengan memetakan kunci setiap item ke dalam wadah defaultdict dalam satu lintasan O(n). Pilih kunci dengan baik dan soal pengelompokan menjadi jauh lebih mudah. 🚀
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengelompokkan dan Mengategorikan dengan Map” gratis?
Ya — teks lengkap “Mengelompokkan dan Mengategorikan dengan Map” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Coding Interview Prep, upgrade ke CoddyKit PRO. Kursus Coding Interview Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengelompokkan dan Mengategorikan dengan Map”?
Mengelompokkan anagram dan item serupa Kamu berlatih Coding Interview Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Coding Interview Prep?
Tidak diperlukan pengalaman sebelumnya. Coding Interview Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Mengelompokkan dan Mengategorikan dengan Map” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Coding Interview Prep ini?
Ya. Setiap pelajaran Coding Interview Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Set untuk Keanggotaan dan Deduplikasi
- Dictionary sebagai Tabel Pencarian
- Counter dan defaultdict dalam Praktik
- Mengelompokkan dan Mengategorikan dengan Map