2 つの文字列内の共通部分文字列の検索
2 つの文字列によって共有される共通部分文字列を特定することは、プログラミングにおける一般的なタスクです。問題ステートメントに示されているように、2 つの入力文字列があるとします。
<br>string1 = "apples"<br>string2 = "appleses"<br>
この場合、共通部分文字列は「apples」です。同様に、より複雑な例:
<br>string1 = "apple pie available"<br>string2 = "apple pies"<br>
予期される出力は、共有部分文字列を表す "apple pie" である必要があります。
difflib を使用した Python による解決策
Python でこの問題を効率的に解決するには、以下を活用できます。標準ライブラリに含まれる difflib モジュール。具体的には、SequenceMatcher の find_longest_match() メソッドを利用して、2 つの文字列間の最も長い共通部分文字列を識別できます。
<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>
3.9 より前の Python バージョンでは、find_longest_match() メソッドには追加の引数が必要です。
<code class="python">SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))</code>
このアプローチを採用すると、入力文字列のペアから共通の部分文字列を効果的に抽出でき、共有シーケンスを見つけるタスクを簡素化できます。
以上がPythonで2つの文字列間の最長の共通部分文字列を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。