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

Pythonの単語リストからアナグラムの最大のグループを見つけるプログラム


文字列の単語のリストがあるとすると、すべてのアナグラムをグループ化して、最大のグループ化のサイズを返す必要があります。

したがって、入力がwords =["xy"、 "yx"、 "xyz"、 "zyx"、 "yzx"、 "wwwww"]の場合、出力は["xyz"、"zyx"のように3になります。 、"yzx"]は最大のグループです。

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

  • lookup:=新しいマップ、最初は空

  • res:=0

  • 言葉で言うと、iごとに

    • p:=辞書式順序でiを並べ替える

    • pがルックアップの場合はカウントを増やし、そうでない場合は1

    • res:=resとlookupの最大値[p]

  • 解像度を返す

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

class Solution:
   def solve(self, words):
      lookup = {}
      res = 0
      for i in words:
         p = "".join(sorted(i))
         lookup[p] = lookup.get(p, 0) + 1
         res = max(res, lookup[p])
      return res
ob = Solution()
words = ["xy", "yx", "xyz", "zyx", "yzx", "wwwww"]
print(ob.solve(words))

入力

["xy", "yx", "xyz", "zyx", "yzx", "wwwww"]

出力

3

  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プログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、配列の最大要素を計算する必要があります。 ここでは、ループ全体をトラバースして最大の要素を計算し、要素を取得するブルートフォースアプローチを使用します。 以下の実装を観察できます。 例 # largest function def largest(arr,n):    #maximum element    max = arr[0]    # traverse the whole loop    for