কম্পিউটার

পাইথনে ভালো ট্রিপলেটের সংখ্যা খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি অ্যারের সংখ্যা এবং তিনটি ভিন্ন পূর্ণসংখ্যা a, b এবং c আছে। আমাদের ভালো ট্রিপলেটের সংখ্যা বের করতে হবে। একটি ট্রিপলেট (nums[i], nums[j], nums[k]) একটি ভাল ট্রিপলেট বলা হয় যদি নিম্নলিখিত শর্তগুলি সত্য হয় -

  • 0 <=i

  • |সংখ্যা[i] - সংখ্যা[j]| <=a

  • |সংখ্যা[জে] - সংখ্যা [কে]| <=b

  • |সংখ্যা[i] - সংখ্যা[কে]| <=c

আমাদের ভালো ট্রিপলেটের সংখ্যা গুনতে হবে।

সুতরাং, যদি ইনপুট হয় nums=[5,2,3,3,12,9], a =7, b =2, c =3, তাহলে আউটপুট হবে 4 কারণ ভাল ট্রিপলেটগুলি হল [(5, 2,3), (5,2,3), (5,3,3), (2,3,3)]

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

  • res :=0

  • আমি 0 থেকে সংখ্যার আকার - 1 এর রেঞ্জের জন্য, করুন

    • j এর জন্য রেঞ্জ i+1 থেকে সংখ্যার আকার - 1, করুন

      • k এর জন্য j+1 থেকে সংখ্যার আকার - 1, করুন

        • যদি |সংখ্যা[i] - সংখ্যা[j]| <=a এবং |সংখ্যা[j] - সংখ্যা[k]| <=b এবং |সংখ্যা[i] - সংখ্যা[k]| <=c, তারপর

          • res :=res + 1

  • রিটার্ন রিটার্ন

উদাহরণ (পাইথন)

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def solve(nums, a, b, c):
   res = 0
   for i in range(len(nums)):
      for j in range(i+1, len(nums)):
         for k in range(j+1, len(nums)):
            if abs(nums[i] - nums[j]) <= a and abs(nums[j] - nums[k]) <= b and abs(nums[i] - nums[k]) <= c:
               res += 1
   return res

nums= [5,2,3,3,12,9]
a = 7
b = 2
c = 3
print(solve(nums, a, b, c))

ইনপুট

[5,2,3,3,12,9], 7, 2 3

আউটপুট

4

  1. পাইথন ব্যবহার করে ভাল লিফ নোড জোড়ার সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে একটি পরিসরে নোডের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম একটি তালিকার ক্ষুদ্রতম সংখ্যা খুঁজে বের করতে

  4. পাইথন প্রোগ্রামে একটি সংখ্যার জোড় গুণনীয়কের সমষ্টি খুঁজুন