কম্পিউটার

আমরা পাইথনে ক্রমাগত ক্রমবর্ধমান সাবলিস্টে তালিকাকে বিভক্ত করতে পারি কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে এবং যেগুলি অ-হ্রাস না হওয়া ক্রমে বাছাই করা হয়েছে, আমাদের পরীক্ষা করতে হবে যে এটিকে পরবর্তী সংখ্যায় বিভক্ত করা যেতে পারে যেমন প্রতিটি অনুগামীর সর্বনিম্ন দৈর্ঘ্য 3 এবং এটি ধারাবাহিকভাবে বৃদ্ধি পাচ্ছে।

সুতরাং, যদি ইনপুটটি nums =[2, 3, 4, 4, 5, 6, 7] এর মত হয়, তাহলে আউটপুটটি True হবে, কারণ আমরা তালিকাটিকে [2, 3, 4] এবং [4, তে বিভক্ত করতে পারি। 5, 6, 7]।

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

  • গণনা :=একটি মানচিত্র যাতে সংখ্যা এবং এর সংখ্যার উপাদান রয়েছে
  • শুরু হয় :=একটি নতুন তালিকা
  • শেষ :=একটি নতুন তালিকা
  • সাজানো ক্রমে গণনার আইটেমের প্রতিটি x-এর জন্য
      করুন
    • যদি গণনা [x]> গণনা [x - 1] হয়, তাহলে
      • l :=আকারের তালিকা (গণনা[x] - গণনা[x - 1]) এবং x দিয়ে পূরণ করুন
      • শুরুতে l ঢোকান
    • যদি গণনা [x]> গণনা [x + 1], তারপর
      • l :=আকারের তালিকা (গণনা[x] - গণনা[x + 1]) এবং x দিয়ে পূরণ করুন
      • শুরুতে l ঢোকান
  • সত্য ফেরত দিন যখন সমস্ত (শুরু, শেষ) জোড়া সন্তুষ্ট হয় (শুরু + 2 <=শেষ), অন্যথায় মিথ্যা ফেরত দেয়

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

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

from collections import Counter
class Solution:
   def solve(self, nums):
      count = Counter(nums)
      starts = []
      ends = []
      for x in sorted(count):
         if count[x] > count[x - 1]:
            starts.extend([x] * (count[x] - count[x - 1]))
         if count[x] > count[x + 1]:
            ends.extend([x] * (count[x] - count[x + 1]))
      return all(s + 2 <= e for s, e in zip(starts, ends))
ob = Solution()
nums = [2, 3, 4, 4, 5, 6, 7]
print(ob.solve(nums))

ইনপুট

[6, 7, 5, 10, 13], 2

আউটপুট

True

  1. প্রদত্ত ব্লকের তালিকা x =y লাইনের উপরে প্রতিসম নাকি পাইথনে নয় তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. পাইথনে একটি স্ট্রিং 1-থেকে-1 ম্যাপ করা যায় কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. পাইথনে তালিকা কঠোরভাবে বাড়ছে বা কঠোরভাবে কমছে কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকা খালি কি না পরীক্ষা করতে?