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

Pythonでの同等のDominoペアの数


ドミノのリストがあるとします。各ドミノには2つの数字があります。 2つのドミノD[i]=[a、b]とD [j] =[c、d]は、a=cとb=d、またはa=dとb=cの場合は同じになります。したがって、1つのドミノを逆にすることができます。 0 <=i

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

  • 回答=0
  • ドミノリストの各ペアpについて-
    • ソートペアp
    • 次に、各ドミノの頻度をDに保存します
  • Dの値のbの場合-
    • 回答:=回答+(b *(b-1))/ 2
  • 回答を返す

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

class Solution(object):
   def numEquivDominoPairs(self, dominoes):
      d = {}
      ans = 0
      for i in dominoes:
         i.sort()
         i = tuple(i)
         if i not in d:
            d[i]= 1
         else:
            d[i]+=1
      for b in d.values():
         ans += ((b*(b-1))//2)
      return ans
ob1 = Solution()
print(ob1.numEquivDominoPairs([[1,2],[2,1],[3,4],[5,6], [4,3]]))

入力

[[1,2],[2,1],[3,4],[5,6],[4,3]]

出力

2

  1. Pythonの回文数

    整数があるとします。整数が回文であるかどうかを確認する必要があります。つまり、整数は順方向または逆方向の両方で同じであり、その数は回文です。たとえば、番号が454であるとすると、逆にすると再び454になります。これが回文です。ここで、数値が-565の場合、その逆は565-になります。これは同じではないため、これは回文ではありません。 これを解決するために、数値を文字列として変換してから、文字列を逆にします。文字列と逆文字列が同じ場合、番号は回文です。したがって、その場合はtrueを返し、それ以外の場合はfalseを返します。 理解を深めるために実装を見てみましょう 例 class Solu

  2. Pythonのfactorial()

    数値の階乗を見つけることは、Pythonを含むデータ分析やその他の数学的分析で頻繁に必要とされます。階乗は、1から指定された数までのすべての整数を乗算することにより、常に正の整数に対して検出されます。以下に示すように、これを見つけるには3つのアプローチがあります。 Forループの使用 forループを使用して、指定された数まで1番を繰り返し、各ステップで乗算を続けることができます。以下のプログラムでは、ループで使用する前に、数値を入力して入力を整数に変換するようにユーザーに求めています。このようにして、計算で正の整数を確実に取得します。 例 n = input("Enter a nu