knakul853

Untitled

Jun 7th, 2020
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     void solve(vector<vector<char>>& board) {
  4.        
  5.          
  6.         if( board.empty() ) return;
  7.         int n = (int)board.size();
  8.         int m = (int)board[0].size();
  9.        
  10.         for(int i=0;i<n;i++)
  11.         {
  12.             if(board[i][0] == 'O') check( i, 0, board );
  13.             if(board[i][m-1] == 'O') check(i, m-1, board );
  14.         }
  15.        
  16.         for(int i=0;i<m;i++)
  17.         {
  18.             if(board[0][i] == 'O') check( 0, i, board );
  19.             if(board[n-1][i] == 'O') check( n-1, i, board );
  20.         }
  21.        
  22.         for(int i=0;i<n;i++)
  23.         {
  24.             for(int j=0;j<m; j++ )
  25.             {
  26.                 auto & val = board[i][j];
  27.                
  28.                 cout<<val<<" ";
  29.                
  30.                  if(val == 'O') val = 'X';
  31.                  else if ( val =='#' ) val = 'O';
  32.             }
  33.             cout<<"\n";
  34.         }
  35.                
  36.     }
  37.    
  38.     private:
  39.    
  40.     void check(int i, int j, vector<vector<char>>&g)
  41.     {
  42.         if( i< 0 || j < 0 || i>= (int)g.size() || j >= (int)g[0].size() )
  43.             return ;
  44.         if(g[i][j] != 'O') return ;
  45.         g[i][j] = '#';
  46.        
  47.         check(i, j-1, g );
  48.         check( i, j+1, g );
  49.         check( i+1, j, g );
  50.         check( i-1, j, g );
  51.     }
  52. };
Add Comment
Please, Sign In to add comment