কম্পিউটার টিউটোরিয়াল

পাইথনে দেওয়া তালিকায় পিথাগোরাস триপলেট আছে কিনা যাচাই করার প্রোগ্রাম


মনে করুন nums নামক একটি সংখ্যার তালিকা আছে, আমাদের যাচাই করতে হবে যে آیا তিনটি সংখ্যা a, b, এবং c আছে যাতে a² + b² = c²।

উদাহরণস্বরূপ, ইনপুট [10, 2, 8, 5, 6] হলে আউটপুট হবে True, কারণ 8² + 6² = 64+36 = 100 = 10²।

সমাধানের ধাপসমূহ

  • tmp := nums-এ থাকা সব সংখ্যার বর্গের তালিকা নিরবরতম ক্রমে
  • প্রতিটি ইন্ডেক্স i এবং সংশ্লিষ্ট সংখ্যা n-এর জন্য tmp-এ,
    • base := n
    • left := i+1, right := tmp-এর আকার -1
    • যখন left <= right,
      • t := tmp[left] এবং tmp[right] যোগ করুন
      • যদি t base-এর সমান হয়, তবে
        • True ফেরত দিন
      • অন্যথায় যখন t > base, তবে
        • left := left + 1
      • অন্যথায়,
        • right := right - 1
  • False ফেরত দিন

উদাহরণ

class Solution:
    def solve(self, nums):
        tmp = sorted([n*n for n in nums], reverse = True)
        for i, n in enumerate(tmp):
            base = n
            left = i+1; right = len(tmp)-1
            while left <= right:
                t = tmp[left]+tmp[right]
                if t == base:
                    return True
                elif t > base:
                    left += 1
                else:
                    right -= 1
        return False

ob = Solution()
print(ob.solve([10, 2, 8, 5, 6]))

ইনপুট

[10, 2, 8, 5, 6]

আউটপুট

True
  1. দেওয়া স্ট্রিংটি ভয়েল প্যালিনড্রোম কিনা চেক করার পাইথন প্রোগ্রাম

  2. দেওয়া স্ট্রিংটি পাইথন কিওয়ার্ড কিনা চেক করার প্রোগ্রাম

  3. পাইথনে স্ট্রিং খালি কিনা চেক করা

  4. পাইথনে স্ট্রিং প্যাংগ্রাম (Pangram) কিনা চেক করা