Comment trouver la sous-chaîne commune la plus longue entre deux chaînes en Python ?

Mary-Kate Olsen
Libérer: 2024-10-27 03:40:02
original
237 Les gens l'ont consulté

How to Find the Longest Common Substring Between Two Strings in Python?

Recherche de sous-chaînes communes dans deux chaînes

Identifier la sous-chaîne commune partagée par deux chaînes est une tâche courante en programmation. Supposons que nous ayons deux chaînes d'entrée, comme illustré dans l'énoncé du problème :

<br>string1 = "apples"<br>string2 = "appleses"<br>

Dans ce cas, la sous-chaîne commune est « pommes ». De même, pour l'exemple plus complexe :

<br>string1 = "apple pie available"<br>string2 = "apple pies"<br>

Le résultat attendu doit être "apple pie", qui représente la sous-chaîne partagée.

Solution Pythonic utilisant difflib

Pour résoudre efficacement ce problème en Python, nous pouvons exploiter le module difflib inclus dans la bibliothèque standard. Plus précisément, la méthode find_longest_match() dans SequenceMatcher peut être utilisée pour identifier la sous-chaîne commune la plus longue entre deux chaînes.

<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>
Copier après la connexion

Dans les versions Python antérieures à 3.9, la méthode find_longest_match() nécessite des arguments supplémentaires :

<code class="python">SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))</code>
Copier après la connexion

En employant cette approche, nous pouvons extraire efficacement la sous-chaîne commune d'une paire de chaînes d'entrée, simplifiant ainsi la tâche de recherche de séquences partagées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!