Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.24 KB | None | 0 0
  1. public class Solution {
  2.    
  3.     int[][] dirs = {{-1,0},{1,0},{0,-1},{0,1}};
  4.     int R;
  5.     int C;
  6.    
  7.     public void solve(char[][] board) {
  8.         R = board.length;
  9.         C = R==0?0:board[0].length;
  10.         for(int r = 0; r<R; ++r) {
  11.             if(board[r][0]=='O') {
  12.                 fill(board, r, 0);
  13.             }
  14.             if(board[r][C-1]=='O') {
  15.                 fill(board, r, C-1);
  16.             }
  17.         }
  18.         for(int c=0; c<C; ++c) {
  19.             if(board[0][c]=='O') {
  20.                 fill(board, 0, c);
  21.             }
  22.             if(board[R-1][c]=='O') {
  23.                 fill(board, R-1, c);
  24.             }
  25.         }
  26.        
  27.         for(int r = 0; r<R; ++r) {
  28.             for(int c = 0; c<C; ++c) {
  29.                 if(board[r][c]=='O') {
  30.                     board[r][c]='X';
  31.                 } else if(board[r][c]=='1') {
  32.                     board[r][c]='O';
  33.                 }
  34.             }
  35.         }
  36.     }
  37.    
  38.     void fill(char[][]board, int x, int y) {
  39.         board[x][y] = '1';
  40.         for(int[] dir:dirs) {
  41.             if(0<=x+dir[0] && x+dir[0]<R && 0<=y+dir[1] && y+dir[1]<C && board[x+dir[0]][y+dir[1]]=='O') {
  42.                 fill(board, x+dir[0], y+dir[1]);
  43.             }
  44.         }
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement