কম্পিউটার

পাইথনে প্রদত্ত তালিকার ডানদিকে ছোট ছোট উপাদানের সংখ্যা ফেরত দেওয়ার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমরা একটি নতুন তালিকা তৈরি করব যেখানে নতুন তালিকার প্রতিটি উপাদান হল মূল ইনপুট তালিকার সেই উপাদানটির ডানদিকে ছোট ছোট উপাদানগুলির সংখ্যা৷

সুতরাং, ইনপুট যদি nums =[4, 5, 9, 7, 2] এর মত হয়, তাহলে আউটপুট হবে [1, 1, 2, 1, 0], কারণ 4-এর ডানদিকে 1টি ছোট উপাদান রয়েছে। 5-এর ডানদিকে 1টি ছোট উপাদান, 9-এর ডানদিকে 2টি ছোট উপাদান, 7-এর ডানদিকে 1টি ছোট উপাদান, 2-এর ডানদিকে আরও ছোট উপাদান রয়েছে৷

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

  • res :=একটি নতুন তালিকা, inc :=একটি নতুন তালিকা

  • সংখ্যাগুলি খালি না থাকার সময়, করুন

    • num :=nums থেকে শেষ উপাদান মুছে দিন

    • res এর শেষে inc-এ num সন্নিবেশ করার জন্য বাম সূচকটি সন্নিবেশ করুন

    • inc তে num সন্নিবেশ করার পরে সাজানো তালিকা

  • একটি তালিকা রিটার্ন করুন [সূচী 0 থেকে শেষ পর্যন্ত]

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

উদাহরণ

import bisect
class Solution:
   def solve(self, nums):
      res, inc = [], []
      while nums:
         num = nums.pop()
         res.append(bisect.bisect_left(inc, num))
         bisect.insort(inc, num)
      return res[::-1]
ob = Solution()
nums = [4, 5, 9, 7, 2]
print(ob.solve(nums))

ইনপুট

[4, 5, 9, 7, 2]

আউটপুট

[1, 1, 2, 1, 0]

  1. পাইথনে এটিকে একক উপাদান তৈরি করতে বাম বা ডান দিক থেকে তালিকার উপাদানগুলিকে চেপে দেওয়ার প্রোগ্রাম

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

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

  4. প্রদত্ত পরিসরে বিজোড় ফ্যাক্টর সহ উপাদানের সংখ্যার জন্য পাইথন প্রোগ্রাম