ホームページ > バックエンド開発 > Python チュートリアル > Python で 2 つの文字列間の最長の共通部分文字列を効率的に見つけるにはどうすればよいですか?

Python で 2 つの文字列間の最長の共通部分文字列を効率的に見つけるにはどうすればよいですか?

DDD
リリース: 2024-10-29 09:02:30
オリジナル
254 人が閲覧しました

How can I efficiently find the longest common substring between two strings in Python?

文字列間の共通部分文字列の検索

文字列操作の領域では、2 つの文字列を比較し、重複する部分を抽出することが必要になることがよくあります。共通部分文字列の検索として知られるこのタスクは、さまざまなアプローチを使用して達成できます。

1 つの強力な解決策は、Python ライブラリ difflib、特にその find_longest_match 関数にあります。この関数は、指定された 2 つの文字列間の最も長い共通部分文字列を細心の注意を払って識別します。

<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>
ログイン後にコピー

古いバージョンの Python (3.9 より前) では、find_longest_match 関数には追加の引数が必要です:

<code class="python"># Python versions prior to 3.9
match = SequenceMatcher(None, string1, string2).\
    find_longest_match(0, len(string1), 0, len(string2))</code>
ログイン後にコピー

difflib ライブラリを利用することで、シーケンス比較のための堅牢な関数セットにアクセスできるようになり、2 つの文字列間の共通部分文字列をシームレスに抽出できるようになります。

以上がPython で 2 つの文字列間の最長の共通部分文字列を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート