কম্পিউটার

পাইথনে সমতুল্য ডমিনো জোড়ার সংখ্যা


ধরুন আমাদের ডমিনোর একটি তালিকা আছে। প্রতিটি ডমিনোর দুটি সংখ্যা রয়েছে। দুটি ডোমিনো D[i] =[a, b] এবং D[j] =[c, d] a =c এবং b =d, অথবা a =d এবং b =c হলে একই হবে। তাই এক ডমিনো বিপরীত হতে পারে. আমাদের জোড়ার সংখ্যা (i, j) ফেরত দিতে হবে যার জন্য 0 <=i

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • উত্তর দিন =0
  • ডোমিনো তালিকার প্রতিটি জোড়া p-এর জন্য −
    • জোড়া সাজান p
    • তারপর প্রতিটি ডমিনোর ফ্রিকোয়েন্সি ডি এ সংরক্ষণ করুন
  • 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. পাইথনে 1 বিটের সংখ্যা

  2. পাইথনে একক সংখ্যা

  3. পাইথনে প্যালিনড্রোম নম্বর

  4. পাইথনে ফ্যাক্টোরিয়াল()