2559. Kira Rentetan Vokal dalam Julat
Kesukaran: Sederhana
Topik: Tatasusunan, Rentetan, Jumlah Awalan
Anda diberi 0-diindeks tatasusunan perkataan rentetan dan tatasusunan 2D pertanyaan integer.
Setiap pertanyaan pertanyaan[i] = [li, ri] meminta kami mencari bilangan rentetan yang terdapat dalam julat li hingga ri (kedua-duanya termasuk) perkataan yang bermula dan berakhir dengan vokal.
Kembalikan tatasusunan ans pertanyaan saiz.panjang, dengan ans[i] ialah jawapan kepada pertanyaan ike.
Perhatikan bahawa huruf vokal ialah 'a', 'e', 'i', 'o' dan 'u'.
Contoh 1:
Contoh 2:
Kekangan:
Petunjuk:
Penyelesaian:
Kita boleh ikut langkah ini:
Mari kita laksanakan penyelesaian ini dalam PHP: 2559. Kira Rentetan Vokal dalam Julat
Penjelasan:
isVowelString Fungsi:
- Menyemak sama ada aksara pertama dan terakhir rentetan ialah vokal.
- Menggunakan in_array untuk menentukan sama ada aksara berada dalam senarai vokal yang dipratentukan.
Susun Susun Awalan:
- prefixSum[i] menyimpan kiraan kumulatif rentetan vokal sehingga indeks i-1.
- Jika perkataan semasa memenuhi syarat, tambahkan kiraan.
Penyelesaian Pertanyaan:
- Untuk julat [l, r], kiraan rentetan vokal ialah prefixSum[r 1] - prefixSum[l].
Kecekapan:
- Membina tatasusunan jumlah awalan memerlukan O(n), dengan n ialah bilangan perkataan.
- Menyelesaikan setiap pertanyaan memerlukan O(1), menjadikan keseluruhan kerumitan O(n q), di mana q ialah bilangan pertanyaan.
Kes Tepi:
Pendekatan ini menangani kekangan masalah dengan cekap.
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 Kira Rentetan Vokal dalam Julat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!