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

পাইথনে সব রুম খোলা সম্ভব কিনা যাচাই করার প্রোগ্রাম


রুমের তালিকা rooms দেওয়া আছে, যেখানে rooms[i] হলো রুম i-তে পাওয়া চাবি গুলো। রুম ০ খোলা আছে। সব রুম খোলা সম্ভব কিনা যাচাই করুন।

উদাহরণ: rooms = [[2,0],[3],[1],[]] → আউটপুট True।

সমাধানের ধাপগুলো:

  • DFS/BFS দিয়ে রুম ০ থেকে শুরু করে সব রুম ভিজিট করুন।
  • ভিজিটেড রুমের সংখ্যা == মোট রুম হলে True।

উদাহরণ

class Solution:
    def solve(self, rooms):
        n = len(rooms)
        ready = [0]
        seen = set()
        while ready:
            u = ready.pop()
            seen.add(u)
            for v in rooms[u]:
                if v not in seen:
                    ready.append(v)
        return len(seen) == n

ob = Solution()
rooms = [
    [2, 0],
    [3],
    [1],
    []
]
print(ob.solve(rooms))

ইনপুট

rooms = [[2, 0],[3],[1],[]]

আউটপুট

True
  1. পাইথনে দুটি ট্রি নোড স왪 করায় সমান হয় কিনা যাচাই করা (Flip Equivalent Trees)

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

  3. পাইথন প্রোগ্রাম: স্ট্রিং হেটেরোগ্রাম (Heterogram) কিনা চেক করা

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