Rumah >pembangunan bahagian belakang >tutorial php >Watak Tambahan dalam Rentetan
2707. Watak Tambahan dalam Rentetan
Kesukaran: Sederhana
Topik: Tatasusunan, Jadual Cincang, Rentetan, Pengaturcaraan Dinamik, Percubaan
Anda diberikan rentetan 0-diindeks dan kamus perkataan kamus. Anda perlu memecahkan s kepada satu atau lebih tidak bertindih subrentetan supaya setiap subrentetan hadir dalam kamus. Mungkin terdapat beberapa aksara tambahan dalam s yang tidak terdapat dalam mana-mana subrentetan.
Kembalikan bilangan minimum aksara tambahan yang tinggal jika anda berpisah secara optimum.
Contoh 1:
Contoh 2:
Kekangan:
Petunjuk:
Penyelesaian:
Kita boleh menentukan tatasusunan dp dengan dp[i] mewakili bilangan minimum aksara tambahan dalam subrentetan s[0:i] selepas pembahagian optimum.
Definisi Pengaturcaraan Dinamik:
Peralihan:
Keputusan:
Mari laksanakan penyelesaian ini dalam PHP: 2707. Watak Tambahan dalam Rentetan
Penjelasan:
Kes Asas:
- dp[0] = 0 kerana tiada aksara tambahan wujud dalam rentetan kosong.
Cari Kamus:
- Kami menyimpan perkataan kamus dalam peta cincang menggunakan array_flip() untuk carian masa tetap.
Peralihan:
- Untuk setiap kedudukan i, kami menyemak semua kemungkinan subrentetan s[j:i]. Jika subrentetan wujud dalam kamus, kami mengemas kini nilai dp[i].
Kerumitan Masa:
- Kerumitan masa ialah O(n^2) dengan n ialah panjang rentetan s kerana bagi setiap indeks, kami menyemak semua indeks sebelumnya untuk membentuk subrentetan.
Keputusan Ujian:
Untuk input "leetscode" dengan kamus ["leet","code","leetcode"], fungsi ini mengembalikan 1 dengan betul, kerana hanya tinggal 1 aksara tambahan ("s").
Untuk input "sayhelloworld" dengan kamus ["hello","world"], fungsi mengembalikan 3, kerana tiga aksara pertama ("katakan") adalah tambahan.
Pautan Kenalan
Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberi repositori bintang di GitHub atau berkongsi siaran pada rangkaian sosial kegemaran anda ?. Sokongan anda amat bermakna bagi saya!
Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:
Atas ialah kandungan terperinci Watak Tambahan dalam Rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!