cari
RumahJavajavaTutorialBagaimana untuk melaksanakan pepohon awalan di Jawa

1. Pokok awalan

1. Apakah pokok awalan

Pokok kamus (pokok Trie) ialah struktur data pokok yang biasa digunakan untuk penyimpanan dan pencarian rentetan. Idea teras pokok kamus adalah menggunakan awalan biasa antara rentetan untuk menjimatkan ruang storan dan meningkatkan kecekapan pertanyaan. Ia adalah pokok berbilang, setiap nod mewakili awalan rentetan, dan laluan dari nod akar ke nod daun membentuk rentetan.

Nod akar pokok kamus tidak mengandungi aksara Setiap nod anak mewakili aksara. Setiap nod boleh menyimpan satu atau lebih rentetan, biasanya menggunakan bendera untuk menandakan sama ada rentetan yang diwakili oleh nod wujud. Apabila anda perlu mencari rentetan dalam satu set rentetan, anda boleh menggunakan pepohon kamus untuk mencapai operasi carian yang cekap.

2. Contoh pepohon awalan

Sebagai contoh, untuk mencipta pepohon awalan untuk tatasusunan rentetan {"goog", "google", "bai", "baidu", "a" }, pada masa ini Kita dapat melihat dengan jelas beberapa ciri pokok awalan:

  • Nod akar tidak menyimpan aksara

  • Pokok awalan ialah Pokok berbilang garpu

  • Setiap nod pokok awalan menyimpan satu aksara

  • Rentetan dengan awalan yang sama disimpan pada laluan yang sama

  • Hujung rentetan juga mempunyai tanda akhir pada pokok awalan dengan sewajarnya

Bagaimana untuk melaksanakan pepohon awalan di Jawa

2. Pelaksanaan pepohon awalan

Soalan 208 tentang Likou adalah mengenai pelaksanaan pepohon awalan: Likou

1 Struktur data pepohon awalan

Apabila menulis kod, saya lebih suka untuk menggunakan pencincangan Jadual digunakan untuk menyimpan maklumat nod, dan sesetengahnya juga boleh menggunakan tatasusunan untuk menyimpan maklumat nod pada dasarnya adalah sama

public class Trie {
    Map<Character, Trie> next;
    boolean isEnd;
    public Trie() {
        this.next = new HashMap<>();
        this.isEnd = false;
    }
    public void insert(String word) {
    }
    public boolean search(String word) {
        return false;
    }
    public boolean startsWith(String prefix) {
        return false;
    }
}

2 Sisipkan rentetan

    public void insert(String word) {
        Trie trie = this;//获得根结点
        for (char c : word.toCharArray()) {
            if (trie.next.get(c) == null) {//当前结点不存在
                trie.next.put(c, new Trie());//创建当前结点
            }
            trie = trie.next.get(c);//得到字符c的结点,继续向下遍历
        }
        trie.isEnd = true;
    }

3

    public boolean search(String word) {
        Trie trie = this;//获得根结点
        for (char c : word.toCharArray()) {
            if (trie.next.get(c) == null) {//当前结点不存在
                return false;
            }
            trie = trie.next.get(c);//得到字符c的结点,继续向下遍历
        }
        return trie.isEnd;
    }

4. Cari awalan

    public boolean startsWith(String prefix) {
        Trie trie = this;//获得根结点
        for (char c : prefix.toCharArray()) {
            if (trie.next.get(c) == null) {//当前结点不存在
                return false;
            }
            trie = trie.next.get(c);//得到字符c的结点,继续向下遍历
        }
        return true;
    }

Langkah seterusnya ialah menjawab beberapa soalan tentang pokok awalan

3. Perkataan terpanjang dalam kamus

1.Penerangan masalah

memberikan kamus bahasa Inggeris yang terdiri daripada tatasusunan rentetanwords. Mengembalikan perkataan terpanjang dalam words, yang terdiri daripada perkataan lain dalam kamus words dengan menambah satu huruf secara beransur-ansur.

Jika terdapat berbilang jawapan yang boleh dilaksanakan, kembalikan perkataan dengan susunan leksikografi terkecil antara jawapan. Jika tiada jawapan, rentetan kosong dikembalikan.

Liquou: Liquou

2 Analisis masalah

Ini adalah soalan pokok awalan biasa, tetapi soalan ini mempunyai beberapa keperluan khas, dan jawapannya adalah:

1. Perkataan terpanjang

2 Perkataan ini secara beransur-ansur terdiri daripada perkataan lain

3 Panjang yang sama mengembalikan leksikografi yang lebih kecil

Oleh itu, kita perlukan untuk mengubah suai kod yang berkaitan bagi pepohon awalan Kod untuk memasukkan rentetan satu demi satu tetap tidak berubah. Pengubahsuaian utama ialah kod carian ialah setiap nod harus mempunyai bendera true, menunjukkan bahawa terdapat satu perkataan dalam setiap nod, dan akhirnya perkataan terpanjang (perkataan nod daun) dibentuk langkah demi langkah

3 >rreeee

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pepohon awalan di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Mar 17, 2025 pm 05:46 PM

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Mar 17, 2025 pm 05:45 PM

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Mar 17, 2025 pm 05:44 PM

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Mar 17, 2025 pm 05:43 PM

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Mar 17, 2025 pm 05:35 PM

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa