Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencari Substring Biasa Terpanjang Antara Dua Rentetan dalam Python?
Mencari Subrentetan Biasa dalam Dua Rentetan
Mengenal pasti subrentetan biasa yang dikongsi oleh dua rentetan ialah tugas biasa dalam pengaturcaraan. Katakan kita mempunyai dua rentetan input, seperti yang digambarkan dalam pernyataan masalah:
<br>string1 = "epal"<br>string2 = "epal"<br>
Dalam kes ini, subrentetan biasa ialah "epal". Begitu juga, untuk contoh yang lebih kompleks:
<br>string1 = "pai epal tersedia"<br>string2 = "pai epal"<br>
Keluaran yang dijangkakan mestilah "pai epal", yang mewakili subrentetan kongsi.
Penyelesaian Python Menggunakan difflib
Untuk menyelesaikan masalah ini dengan cekap dalam Python, kami boleh memanfaatkan modul difflib termasuk dalam perpustakaan standard. Khususnya, kaedah find_longest_match() dalam SequenceMatcher boleh digunakan untuk mengenal pasti subrentetan biasa terpanjang antara dua rentetan.
<code class="python">from difflib import SequenceMatcher string1 = "apple pie available" string2 = "come have some apple pies" match = SequenceMatcher(None, string1, string2).find_longest_match() print(match) # Output: Match(a=0, b=15, size=9) print(string1[match.a:match.a + match.size]) # Output: "apple pie" print(string2[match.b:match.b + match.size]) # Output: "apple pie"</code>
Dalam versi Python lebih awal daripada 3.9, kaedah find_longest_match() memerlukan argumen tambahan:
<code class="python">SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))</code>
Dengan menggunakan pendekatan ini, kami boleh mengekstrak subrentetan biasa secara berkesan daripada sepasang rentetan input, memudahkan tugas mencari jujukan dikongsi.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Substring Biasa Terpanjang Antara Dua Rentetan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!