2981. Cari Subrentetan Khas Terpanjang Yang Berlaku Tiga Kali Saya
Kesukaran: Sederhana
Topik: Jadual Hash, Rentetan, Carian Binari, Tetingkap Gelongsor, Mengira
Anda diberi rentetan s yang terdiri daripada huruf Inggeris huruf kecil.
Rentetan dipanggil istimewa jika ia terdiri daripada satu aksara sahaja. Contohnya, rentetan "abc" tidak istimewa, manakala rentetan "ddd", "zz" dan "f" adalah istimewa.
Kembalikan panjang subrentetan istimewa terpanjang s yang berlaku sekurang-kurangnya tiga kali, atau -1 jika tiada subrentetan khas berlaku sekurang-kurangnya tiga kali.
subrentetan ialah jujukan bukan kosong bersebelahan bagi aksara dalam rentetan.
Contoh 1:
Contoh 2:
Contoh 3:
Kekangan:
Petunjuk:
Penyelesaian:
Kita boleh menggunakan pendekatan kekerasan kerana kekangan kecil s (panjang sehingga 50). Kami akan:
Mari laksanakan penyelesaian ini dalam PHP: 2981. Cari Subrentetan Khas Terpanjang Yang Berlaku Tiga Kali Saya
Penjelasan:
- Gelung Luar: Kami mengulangi kemungkinan panjang subrentetan, bermula dengan yang paling panjang. Ini memastikan kami mengembalikan subrentetan khas terpanjang sebaik sahaja kami menemuinya.
- Tetingkap Gelongsor: Untuk setiap panjang subrentetan, kami menggunakan pendekatan tetingkap gelongsor untuk mengekstrak semua subrentetan panjang itu.
- Mengira Subrentetan: Kami menggunakan tatasusunan bersekutu ($countMap) untuk menyimpan dan mengira kejadian setiap subrentetan.
- Menyemak Istimewa: Fungsi pembantu ialahSemakan khas jika subrentetan terdiri daripada satu aksara berulang sahaja.
- Mengembalikan Keputusan: Jika subrentetan yang sah ditemui, kami mengembalikan panjangnya; jika tidak, kami kembalikan -1.
Kerumitan
Pendekatan kekerasan ini boleh dilaksanakan memandangkan kekangan (n <= 50).
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 Cari Subrentetan Khas Terpanjang Yang Berlaku Tiga Kali I. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!