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

পাইথনে লিস্ট এলিমেন্টগুলোর ফ্রিকোয়েন্সি কি সব সম (Even) কিনা চেক করার প্রোগ্রাম (O(1) স্পেস)

একটি লিস্ট nums দেওয়া আছে। সব নম্বর কি ই৸নবার (even times) চলে আসেছে কিনা চেক করুন। কনস্ট্যান্ট স্পেস ব্যবহার করে সমাধান করুন।

উদাহরণ

nums = [8, 9, 9, 8, 5, 5] → আউটপুট: True

সব নম্বর ২ বার করে এসেছে।

এলগরিদম (সর্টিং + ইন-প্লেস মার্কিং)

  1. যদি len(nums) অড্ড: False
  2. nums.sort()
  3. for i in 1..len(nums)-1:
    • যদি nums[i] == nums[i-1]: nums[i] = nums[i-1] = 0
  4. রিটার্ন sum(nums) == 0

পাইথন কোড

def solve(nums):
    if len(nums) & 1:
        return False
    nums.sort()
    for i in range(1, len(nums)):
        if nums[i] == nums[i-1]:
            nums[i] = nums[i-1] = 0
    return sum(nums) == 0

nums = [8, 9, 9, 8, 5, 5]
print(solve(nums))  # আউটপুট: True

ইনপুট / আউটপুট

[8, 9, 9, 8, 5, 5]
True
  1. পাইথনে ব্লকের তালিকা y=x রেখা দিয়ে সিমেট্রিক কিনা যাচাই করার প্রোগ্রাম

  2. পাইথনে দুটি বাইনারি ট্রির লিফ সিকোয়েন্স মিল কিনা যাচাই

  3. পাইথনে গ্রাফ বাইপার্টাইট কিনা যাচাই করার প্রোগ্রাম

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