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

পাইথনে সাবলিস্টে ভাগ করে সর্ট করার পর পুরো তালিকা সর্টেড হয় কিনা

একটি সংখ্যার তালিকা nums দেওয়া আছে। তালিকাটিকে কিছু সাবলিস্টে ভাগ করে প্রতিটি সাবলিস্ট সর্ট করলে পুরো তালিকা সর্টেড হয়। সর্বোচ্চ কতটি সাবলিস্টে ভাগ করা যায় তা বের করতে হবে।

উদাহরণ: nums = [4, 3, 2, 1, 7, 5] হলে আউটপুট ২, কারণ [4,3,2,1] এবং [7,5] সর্ট করলে পুরো তালিকা সর্টেড হয়।

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

  • count := 0, main_sum := 0, sorted_sum := 0
  • nums এবং sorted(nums) একসাথে ইটারেট করুন
  • প্রতিটি ধাপে main_sum += x, sorted_sum += y
  • যদি main_sum == sorted_sum হয় তবে count বাড়ান
  • count ফেরত দিন

উদাহরণ কোড

class Solution:
    def solve(self, nums):
        count = 0
        main_sum = sorted_sum = 0
        for x, y in zip(nums, sorted(nums)):
            main_sum += x
            sorted_sum += y
            if main_sum == sorted_sum:
                count += 1
        return count

ob = Solution()
nums = [4, 3, 2, 1, 7, 5]
print(ob.solve(nums))

ইনপুট

[4, 3, 2, 1, 7, 5]

আউটপুট

2
  1. পাইথনে সর্টেড লিস্টের রেঞ্জ থেকে অনুপস্থিত সংখ্যা বের করুন

  2. পাইথন প্রোগ্রাম লিস্টে সবচেয়ে ছোট সংখ্যা বের করা

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

  4. পাইথনে লিস্ট থেকে সর্বোচ্চ সংখ্যা বের করা