Dalam bidang manipulasi rentetan, selalunya perlu untuk membandingkan dua rentetan dan mengekstrak bahagian bertindih. Tugas ini, yang dikenali sebagai mencari subrentetan biasa, boleh dicapai menggunakan pelbagai pendekatan.
Satu penyelesaian berkuasa terletak pada difflib perpustakaan Python, khususnya fungsi find_longest_matchnya. Fungsi ini dengan teliti mengenal pasti subrentetan biasa terpanjang antara dua rentetan yang diberikan.
<code class="python">from difflib import SequenceMatcher # Example 1 string1 = "apples" string2 = "appleses" match = SequenceMatcher(None, string1, string2).find_longest_match() common_substring = string1[match.a:match.a + match.size] # "apples" # Example 2 string1 = "apple pie available" string2 = "apple pies" match = SequenceMatcher(None, string1, string2).find_longest_match() common_substring = string1[match.a:match.a + match.size] # "apple pie" print(common_substring)</code>
Dalam versi Python yang lebih lama (sebelum 3.9), fungsi find_longest_match memerlukan argumen tambahan:
<code class="python"># Python versions prior to 3.9 match = SequenceMatcher(None, string1, string2).\ find_longest_match(0, len(string1), 0, len(string2))</code>
Dengan menggunakan pustaka difflib, kami mendapat akses kepada set fungsi yang mantap untuk perbandingan jujukan, membolehkan pengekstrakan lancar subrentetan biasa antara dua rentetan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mencari subrentetan biasa terpanjang di antara dua rentetan dalam Python dengan cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!