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

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


ধরা যাক nums নামক একটি সংখ্যার তালিকা আছে, আমাদের একটি নতুন তালিকা তৈরি করতে হবে যেখানে প্রতিটি উপাদান 본래 তালিকায় সেই উপাদানের ডানে থাকা ছোট উপাদান সংখ্যা নির্দেশ করবে।

উদাহরণ: nums = [4, 5, 9, 7, 2] হলে আউটপুট [1, 1, 2, 1, 0], কারণ 4-এর ডানে ১টি ছোট উপাদান (2), 5-এর ডানে ১টি (2), 9-এর ডানে ২টি (7,2), 7-এর ডানে ১টি (2), 2-এর ডানে ০টি।

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

  • res := নতুন তালিকা, inc := নতুন তালিকা (সর্টেড রাখতে)
  • যখন nums খালি নয়:
    • num := nums-এর শেষ উপাদান পপ করুন
    • bisect_left দিয়ে inc-এ num ইনসার্ট করার বামোতম ইন্ডেক্স res-এ অ্যাপেন্ড করুন
    • bisect.insort দিয়ে num inc-এ ইনসার্ট করুন
  • res রিভার্স করে ফেরত দিন।

উদাহরণ কোড

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. দেওয়া রেঞ্জে অদ্দ ফ্যাক্টরের সংখ্যা বের করার পাইথন প্রোগ্রাম