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

পাইথনে অন্য একটি অ্যারেতে সাব-অ্যারেগুলোকে কনক্যাটেনেট করে অ্যারে তৈরি করার প্রোগ্রাম


মান लीজিয়ে আমাদের একটি 2D অ্যারে আছে যার নাম groups এবং আরেকটি অ্যারে nums। আমাদের চেক করতে হবে কিনা আমরা nums অ্যারেতে থেকে nটি ডিজয়েন্ট (disjoint) সাব-অ্যারে বাছাই করতে পারি যাতে i-তম সাব-অ্যারে groups[i]-এর সমান হয় (০-ইন্ডেক্সড), এবং যদি i > 0 হয়, তবে (i-1)-তম সাব-অ্যারে nums-এ i-তম সাব-অ্যারের আগে দেখায়।

যেমন, ইনপুট হলে groups = [[2,-2,-2],[4,-3,0]] এবং nums = [1,-1,0,2,-2,-2,4,-3,0], তবে আউটপুট হবে true কারণ group[0] nums-এর ইন্ডেক্স ৩ থেকে ৫ পর্যন্ত পাওয়া যায় এবং group[1] ইন্ডেক্স ৬ থেকে ৮ পর্যন্ত।

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

  • i := 0

  • groups-এ 존재하는 প্রতিটি grp এর জন্য, নিচের কাজটি করুন:

    • j := i থেকে nums এর সাইজ - ১ পর্যন্ত লুপ চালান:

      • যদি nums[j : j + len(grp)] সাব-অ্যারেটি grp-এর সমান হয়, তবে:

        • i := j + len(grp)

        • লুপ থেকে বের হয়ে যান

      • অন্যথায়,

        • False রিটার্ন করুন

  • True রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝতে:

def solve(groups, nums):
    i = 0
    for grp in groups:
        for j in range(i, len(nums)):
            if nums[j:j+len(grp)] == grp:
                i = j + len(grp)
                break
        else:
            return False
    return True

groups = [[2,-2,-2],[4,-3,0]]
nums = [1,-1,0,2,-2,-2,4,-3,0]
print(solve(groups, nums))

ইনপুট

[[2,-2,-2],[4,-3,0]], [1,-1,0,2,-2,-2,4,-3,0]

আউটপুট

True

  1. Python প্রোগ্রাম: NumPy অ্যারে রিভার্স করার পদ্ধতি

  2. পাইথনে ইউনিক অ্যারেতে কনটিগুয়াস ইন্টারভাল খুঁজে বের করার প্রোগ্রাম

  3. অ্যারে-এ ইনভারশন কাউন্ট করার পাইথন প্রোগ্রাম

  4. অ্যারে রোটেশনের পাইথন প্রোগ্রাম