কম্পিউটার

আমরা পাথর দিয়ে নদী পার হতে পারি নাকি পাইথনে নয় তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের কাছে বাছাই করা সংখ্যার একটি তালিকা রয়েছে যাকে বলা হয় পাথর এবং এটি একটি নদীর উপর পাথরের অবস্থানের প্রতিনিধিত্ব করছে যা আমরা অতিক্রম করার চেষ্টা করছি। নদী পার হতে হলে শেষ পাথরে শেষ করতে হবে। এখন প্রতিটি ধাপে, আমরা লাফ দিতে পারি (k - 1, k, বা k + 1) ধাপ এগিয়ে যেখানে k হল শেষ লাফের দূরত্ব। আমরা নদী পার হতে পারব কি না তা পরীক্ষা করতে হবে।

সুতরাং, ইনপুট যদি পাথরের মত হয় =[0, 1, 3, 4, 5, 6, 8, 9, 13], তাহলে আউটপুট হবে True, যেমন আমরা 0 থেকে শুরু করতে পারি, তারপর 1 ইউনিট লাফ দিয়ে পাথরে যেতে পারি। 1, তারপর 2 ইউনিট 3 যেতে, তারপর 2 ইউনিট 5, তারপর 3 ইউনিট 8, এবং অবশেষে 5 ইউনিট 13 যেতে, এবং এটি চূড়ান্ত স্থান।

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

  • start :=A[0], end :=A এর শেষ উপাদান
  • A :=A এর সমস্ত অনন্য উপাদানের একটি সেট
  • একটি ফাংশন চেক() সংজ্ঞায়িত করুন। এটি pos:=start, prev:=0
  • লাগবে
  • যদি pos শেষের মত হয়, তাহলে
    • সত্য ফেরান
  • প্রতিটি লাফের জন্য [পূর্ব - 1, পূর্ববর্তী, পূর্ববর্তী + 1], করুন
    • যদি লাফ দেয়>=1, তাহলে
      • next_pos :=jump + pos
      • যদি next_pos A তে থাকে এবং চেক করুন (next_pos, jump) সত্য হয়, তাহলে
        • সত্য ফেরান
  • মিথ্যে ফেরত দিন
  • প্রধান পদ্ধতি থেকে কল চেক() এবং রিটার্ন ফলাফল

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

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

class Solution:
   def solve(self, A):
      start, end = A[0], A[-1]
      A = set(A)
      def check(pos=start, prev=0):
         if pos == end:
            return True
         for jump in [prev - 1, prev, prev + 1]:
            if jump >= 1:
               next_pos = jump + pos
               if next_pos in A and check(next_pos, jump):
                  return True
         return False
      return check()
ob = Solution()
stones = [0, 1, 3, 4, 5, 6, 8, 9, 13]
print(ob.solve(stones))

ইনপুট

[0, 1, 3, 4, 5, 6, 8, 9, 13]

আউটপুট

True

  1. একটি সংখ্যা পরীক্ষা করার জন্য প্রোগ্রাম কুশ্রী সংখ্যা বা পাইথনে নয়

  2. একটি স্ট্রিং পরীক্ষা করার প্রোগ্রাম প্যালিনড্রোম কি পাইথনে নয়

  3. একটি সংখ্যা প্রাইম কি না তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  4. একটি স্ট্রিং প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম