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

পাইথনে দিয়ে गये ম্যাট্রিক্সে দ্বীপের সংখ্যা গণনা করার প্রোগ্রাম


মান ল করুন একটি বাইনারি ম্যাট্রিক্স, আমাদের ম্যাট্রিক্সে দ্বীপের সংখ্যা খুঁজে বের করতে হবে। এখানে ১ হল ল্যান্ড এবং ০ হল ওয়াটার, তাই একটি দ্বীপ হল ১-দের একটি গ্রুপ যারা পাশাপাশি আছে এবং যাদের পেরিমিটার জল দ্বারা ঘিরা। নেইবর শুধু হরিজন্টাল বা ভার্টিকেল হতে পারে, ডায়াগোনাল নয়।

যদি ইনপুট হয়:

10100
00100
01100
00000
11011
11101

তবে আউটপুট হবে ৪।

এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব:

  • একটি explore() ফাংশন সংজ্ঞায়িত করুন। এটি row, col, matrix গ্রহণ করবে।
  • যদি row, col ম্যাট্রিক্সের রেঞ্জে না থাকে বা matrix[row][col] == 0, তবে ফেরত দিন।
  • matrix[row][col] := 0
  • explore(row+1, col, matrix), explore(row-1, col, matrix), explore(row, col+1, matrix), explore(row, col-1, matrix) কল করুন।
  • মূল মেথড থেকে: যদি matrix null হয়, ০ ফেরত দিন। islands := 0। row কে ০ থেকে ম্যাট্রিক্সের সারি সংখ্যা পর্যন্ত, col কে ০ থেকে কলাম সংখ্যা পর্যন্ত লুপ চালান: যদি matrix[row][col] == 1, islands := islands + 1, explore(row, col, matrix) কল করুন। islands ফেরত দিন।

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন:

উদাহরণ

class Solution:    def explore(self, row, col, matrix):    if (          row < 0 or col < 0 or row > len(matrix) - 1 or col > len (matrix[0]) - 1 or          matrix[row][col] == 0):          return       matrix[row][col] = 0       self.explore(row + 1, col, matrix)       self.explore(row - 1, col, matrix)       self.explore(row, col + 1, matrix)       self.explore(row, col - 1, matrix)       def solve(self, matrix):          if not matrix:             return 0          islands = 0          for row in range(len(matrix)):             for col in range(len(matrix[0])):                if matrix[row][col] == 1:                   islands += 1                   self.explore(row, col, matrix)          return islands ob = Solution() matrix = [    [1, 0, 1, 0, 0],    [0, 0, 1, 0, 0],    [0, 1, 1, 0, 0],    [0, 0, 0, 0, 0],    [1, 1, 0, 1, 1],    [1, 1, 1, 0, 1] ] print(ob.solve(matrix))

ইনপুট

[ [1, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 1, 1, 0, 0], [0, 0, 0, 0, 0], [1, 1, 0, 1, 1], [1, 1, 1, 0, 1] ]

আউটপুট

4

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

  2. পাইথনে দِيয়ে गये এজগুলো অন্তর্ভুক্ত করে অনন্য পথের সংখ্যা গণনার প্রোগ্রাম

  3. পাইথনে ম্যাট্রিক্সে ঘিরা দ্বীপের সংখ্যা গণনা করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম সেট ব্যবহার করে স্ট্রিংয়ে ভাওয়েল কাউন্ট করা