Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの文字列のリストから最長の共通プレフィックスを見つけるプログラム


小文字の文字列のリストがあるとすると、最も長い共通プレフィックスを見つける必要があります。

したがって、入力が["antivirus"、 "anticlockwise"、 "antigravity"]の場合、出力は "anti"

になります。

これを解決するには、次の手順に従います-

リストの単語をアルファベット順に並べ替える

  • プレフィックス:=新しいリスト
  • フラグ:=0
  • 0から単語のサイズ[0]までの範囲のiの場合、実行
    • 単語のjごとに、
      • j [i]がプレフィックスの最後の要素と同じでない場合、
        • プレフィックスから最後の要素を削除
        • フラグ:=1
        • ループから抜け出す
    • フラグが1と同じ場合、
      • ループから抜け出す
  • プレフィックス配列に存在するすべての要素を連結した後に文字列を返します

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def solve(self, words):
      words.sort()
      prefix = []
      flag = 0
      for i in range(len(words[0])):
         prefix.append(words[0][i])
         for j in words:
            if j[i] != prefix[-1]:
               prefix.pop()
               flag = 1
               break
         if flag == 1:
            break
         return ''.join(prefix)
ob = Solution()
words = ["antivirus", "anticlockwise", "antigravity"]
print(ob.solve(words))

入力

["antivirus", "anticlockwise", "antigravity"]

出力

anti

  1. 2つの文字列から珍しい単語を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 2つの文字列が与えられているので、与えられた文字列から珍しい単語を取得する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # uncommon words def find(A, B):    # count    count = {}    # insert in A    for word in A.split():       count[word] = coun

  2. Pythonで3つ以上の文字列から最長の共通部分文字列を見つける方法は?

    最長共通部分文字列アルゴリズムの一般的な動的計画法の実装は、O(nm)時間で実行されます。以下は、最も長い一般的な部分文字列アルゴリズムの実装です。 例 def longest_common_substring(s1, s2):    m = [[0] * (1 + len(s2)) for i in xrange(1 + len(s1))]    longest, x_longest = 0, 0    for x in xrange(1, 1 + len(s1)):        for y