ধরুন আমাদের কাছে X এবং O সম্বলিত একটি 2D বোর্ড রয়েছে। X দ্বারা বেষ্টিত সমস্ত অঞ্চলকে ক্যাপচার করুন। একটি অঞ্চলকে সেই বেষ্টিত অঞ্চলের সমস্ত Os-কে Xs-এ পরিবর্তন করে ক্যাপচার করা হয়েছে।
X | X | X | X |
X | ও | ও | X |
X | X | ও | X |
X | ও | X | X |
রান করার পর আউটপুট হবে
X | X | X | X |
X | X | X | X |
X | X | X | X |
X | ও | X | X |
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি বোর্ড উপস্থিত না থাকে, তাহলে ফাঁকা বোর্ড ফেরত দিন
- আমি 0 থেকে সারির সংখ্যা - 1 −
- পরিসরে
- যদি বোর্ড[i, 0] ='O', তাহলে make_one(board, i, 0)
- যদি বোর্ড[i, সারির দৈর্ঘ্য - 1] ='O' হয়, তাহলে make_one(বোর্ড, i, সারির দৈর্ঘ্য - 1)
- আমি 0 থেকে কলের সংখ্যা - 1 −
- এর মধ্যে
- যদি বোর্ড[0, i] ='O', তাহলে make_one(বোর্ড, 0, i)
- যদি বোর্ড [সারির সংখ্যা - 1, i] ='O' হয়, তাহলে make_one(বোর্ড, সারির সংখ্যা - 1, i)
- আমি 0 থেকে সারির সংখ্যার মধ্যে
- j এর জন্য রেঞ্জ 0 থেকে কলের সংখ্যা
- যদি বোর্ড[i, j] ='O', তাহলে board[i, j] ='X', অন্যথায় 1, board[i, j] ='O'
- j এর জন্য রেঞ্জ 0 থেকে কলের সংখ্যা
- make_one হবে − এর মত
- যদি i <0 বা j <0 বা i>=সারি গণনা বা j>=কল গণনা বা বোর্ড[i, j] ='X' বা বোর্ড[i, j] ='1' হয়, তাহলে ফিরে আসুন
- বোর্ড[i, j] :=1
- make_one(voard, i + 1, j), make_one(voard, i - 1, j), make_one(voard, i, j + 1), make_one(voard, i, j - 1) কে কল করুন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution(object): def solve(self, board): if not board: return board for i in range(len(board)): if board[i][0]=='O': self.make_one(board,i,0) if board[i][len(board[0])-1] == 'O': self.make_one(board,i,len(board[0])-1) for i in range(len(board[0])): if board[0][i]=='O': self.make_one(board,0,i) if board[len(board)-1][i] == 'O': self.make_one(board,len(board)-1,i) for i in range(len(board)): for j in range(len(board[i])): if board[i][j]=='O': board[i][j]='X' elif board[i][j]=='1': board[i][j]='O' return board def make_one(self, board,i,j): if i<0 or j<0 or i>=len(board) or j>=len(board[0]) or board[i][j]=='X' or board[i] [j]=='1': return board[i][j]='1' self.make_one(board,i+1,j) self.make_one(board,i-1,j) self.make_one(board,i,j+1) self.make_one(board,i,j-1) ob1 = Solution() print(ob1.solve([["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]))
ইনপুট
[["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]
আউটপুট
[['X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X'], ['X', 'O', 'X', 'X']]