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

পাইথনে যাচাই করুন অ্যারে একটি দিয়ে যেওয়া রেঞ্জের সব উপাদান আছে কিনা

ধরুন, nums নামক একটি অ্যারে এবং দুটি সংখ্যা x ও y দেওয়া হয়েছে যা একটি রেঞ্জ [x, y] তৈরি করে। আমাদের যাচাই করতে হবে যে অ্যারেতে এই রেঞ্জের সব সংখ্যা উপস্থিত আছে কিনা।

যেমন, ইনপুট nums = [5,8,9,6,3,2,4], x = 2, y = 6 হলে আউটপুট হবে True, কারণ অ্যারেতে ২, ৩, ৪, ৫, ৬ সবই আছে।

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

  • temp_range = y - x।
  • অ্যারেটি ট্রাভার্স করুন। যদি কোনো এলিমেন্টের Абсолют মান x এবং y-র মধ্যে থাকে, তবে:
    • z = abs(nums[i]) - x।
    • যদি nums[z] > 0 হয়, তবে nums[z] = -nums[z] (নেগেটিভ করে দিন যাতে ডুপ্লিকেট কাউন্ট না হয়)।
  • তারপর i = 0 থেকে temp_range পর্যন্ত চেক করুন:
    • যদি i >= len(nums) হয়, ব্রেক করুন।
    • যদি nums[i] > 0 থাকে, তবে False ফেরত দিন (অর্থাৎ সেই সংখ্যা পাওয়া যায়নি)।
    • অন্যথায় কাউন্ট বাড়ান।
  • যদি মোট কাউন্ট temp_range + 1 না হয়, তবে False ফেরত দিন।
  • অন্যথায় True ফেরত দিন।

উদাহরণ কোড

def solve(nums, x, y):
    temp_range = y - x
    for i in range(len(nums)):
        if abs(nums[i]) >= x and abs(nums[i]) <= y:
            z = abs(nums[i]) - x
            if nums[z] > 0:
                nums[z] = -nums[z]
    cnt = 0
    for i in range(temp_range + 1):
        if i >= len(nums):
            break
        if nums[i] > 0:
            return False
        else:
            cnt += 1
    if cnt != temp_range + 1:
        return False
    return True

nums = [5,8,9,6,3,2,4]
x = 2
y = 6
print(solve(nums, x, y))

ইনপুট

[5,8,9,6,3,2,4], 2, 6

আউটপুট

True
  1. পাইথনে চেক করা সব লিস্ট এলিমেন্ট একই কিনা

  2. পাইথনে অ্যারে মনোটোনিক (Monotonic) কিনা চেক করা

  3. পাইথনে স্ট্রিং-এ সব ক্যারেক्टर ইউনিক কিনা চেক করা

  4. পাইথনে পূর্ণসংখ্যা অ্যারে থেকে স্বতন্ত্র (distinct) উপাদান প্রিন্ট করার প্রোগ্রাম