Bagaimana untuk Mencari Substring Biasa Terpanjang Antara Dua Rentetan dalam Python?

Mary-Kate Olsen
Lepaskan: 2024-10-27 03:40:02
asal
237 orang telah melayarinya

How to Find the Longest Common Substring Between Two Strings in 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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!