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

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


মনে করুন একটি সংখ্যার তালিকা আছে যার নাম A এবং অন্য একটি সংখ্যা k। আমাদের একটি নতুন সেট তৈরি করতে হবে সম্ভাব্য উপাদানগুলির {A[k], A[A[k]], A[A[A[k]]], ... } এবং এটি ইনডেক্সের বাইরে যাওয়ার আগে থামাতে হবে। এই সেটের আকার খুঁজে বের করতে হবে, অন্যথায় -1 ফেরত দিতে হবে যদি কোনো সাইকেল থাকে।

উদাহরণস্বরূপ, ইনপুট A = [1,2,3,4,5,6,7], k = 1 হলে আউটপুট হবে 6 কারণ A[1] = 2, A[2] = 3, A[3] = 4, A[4] = 5, A[5] = 6, A[6] = 7, তাই সেটটি হল {2,3,4,5,6,7}, যার আকার 6।

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

  • seen := একটি নতুন সেট
  • যখন k < A-এর আকার, তখন
    • যদি A[k] seen-এ থাকে, তবে
      • -1 ফেরত দিন
    • A[k]-কে seen-এ যোগ করুন
    • k := A[k]
  • seen-এর আকার ফেরত দিন

উদাহরণ

class Solution:
    def solve(self, A, k):
        seen = set()
        while k < len(A):
            if A[k] in seen:
                return -1
            seen.add(A[k])
            k = A[k]
        return len(seen)

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

ইনপুট

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

আউটপুট

6
  1. পাইথনে হাম্বল ম্যাট্রিক্সের সম্ভাব্য অরেঞ্জমেন্টের সংখ্যা বের করা

  2. পাইথনে স্ট্রিং-এর সকল ভিন্ন উপস্ট্রিংয়ের সংখ্যা বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম - n নোড দিয়ে BST-এর সংখ্যা বের করুন

  4. দেওয়া রেঞ্জে অদ্দ ফ্যাক্টরের সংখ্যা বের করার পাইথন প্রোগ্রাম