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

Pythonの単語リスト内に存在するサブシーケンスの数を見つけるプログラム


単語のリストと文字列sがあるとすると、単語リスト内でsのサブシーケンスである文字列の数を見つける必要があります。

したがって、入力がwords =["xz"、 "xw"、 "y"] s ="xyz"の場合、"xz"と"y"は"xyz"のサブシーケンスであるため、出力は2になります。

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

  • ans:=0
  • d:=空の地図
  • 単語内の各単語について、
    • d [word [0]]
    • の最後に単語を挿入します
  • sの各cについて、
    • l:=d [c]
    • d [c]:=新しいリスト
    • lの各単語について、
      • 単語のサイズが1の場合、
        • ans:=ans + 1
      • それ以外の場合、
        • d[word[1]]の最後にword[インデックス1から最後まで]の部分文字列を挿入します
  • 回答を返す

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

from collections import defaultdict
class Solution:
   def solve(self, words, s):
      ans = 0

      d = defaultdict(list)
      for word in words:
         d[word[0]].append(word)

      for c in s:
         l = d[c]
         d[c] = []

         for word in l:
            if len(word) == 1:
               ans += 1
            else:
               d[word[1]].append(word[1:])
      return ans
ob = Solution()
words = ["xz", "xw", "y"]
s = "xyz"
print(ob.solve(words, s))

入力

["xz", "xw", "y"], "xyz"

出力

2

  1. リスト内の最小数を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal

  2. リスト内で最大数を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 与えられたリスト入力では、与えられたリストの中で最大の数を見つける必要があります。 ここでは、2つのアプローチについて説明します 並べ替え手法の使用 組み込みのmax()関数を使用する アプローチ1-組み込みのsort()関数を使用する 例 list1 = [18, 65, 78, 89, 90] list1.sort() # main print("Largest element is:", list1[-1]) 出力 Largest element is: