Saya tidak berpikir bahwa memecahkan batasan ini adalah suatu kebutuhan karena ingin 3 untuk menangkap 4 terlihat seperti kasus penggunaan yang sangat jarang, di mana pengganti diambil di atas yang lain, untuk kesempatan langka ini Anda bisa menggabungkan dua penggunaan 5, juga metana
Saya melihat bagaimana Trie dapat memecahkan masalah ini, tetapi penggunaan memori akan menjadi masalah, dan daftar tertaut tidak dapat menggunakan caching memori berurutan (kompleksitasnya lebih rendah, tetapi runtime bisa lebih besar)
Ide yang Anda kutip sangat berbeda dengan saya, jadi jangan buru-buru menutup ini, berpikir itu adalah hal yang sama Jika seseorang mengganti teks string, kemungkinan besar hal itu dilakukan lebih dari sekali Mari bandingkan solusi yang tersedia Pertimbangkan kami ingin melakukan 3 perubahan pada string 6
Solusi umum (sama seperti yang diajarkan @luciano) _Solusi RegEx (disarankan oleh @steven. daprano dan berdasarkan re. sub() dokumentasi)
Solusi baru yang disarankan _Saya tidak dapat mengeluh tentang solusi pertama, ini berfungsi, satu-satunya alasan saya memposting ini adalah karena menurut saya operasi penulisan banyak penggantian sangat umum dan dapat dioptimalkan Solusi kedua rumit untuk pekerjaan sederhana yang diselesaikannya, saya dapat melihat orang-orang menyalinnya dari StackOverflow haha, selain bercanda, pemanggilan fungsi menambahkan overhead yang tidak perlu ke algoritme Hai, solusi lain yang mungkin dapat dilakukan adalah mengimplementasikan algoritme penggantian menggunakan metode find… Untuk solusi saya, saya mengunduh versi txt dari "El Quijote de la mancha", agar memiliki string yang cukup panjang untuk mengukur waktu _Kemudian saya membuat fungsi menggunakan panggilan bersarang untuk mengganti metode
Dan fungsi lain menggunakan metode find, dan membuat daftar semua kemungkinan penggantian menggunakan perubahan
Panggilan
mengambil 3. 06 detik untuk selesai Dan 0mengambil 914ms Solusi yang diusulkan lebih cepat, dan juga mencegah penggantian string yang sudah diganti, prioritasnya adalah terjadinya salah satu string dalam perubahan |