// 56ms
1
class Solution { 2 public: 3 4 void DFS(vector<vector<char>> &v,int i,int j) 5 { 6 if(v[i][j]=='O') 7 { 8 v[i][j]='Q'; 9 if(i>0) 10 DFS(v,i-1,j); 11 if(i<v.size()-1) 12 DFS(v,i+1,j); 13 if(j>0) 14 DFS(v,i,j-1); 15 if(j<v[i].size()) 16 DFS(v,i,j+1); 17 } 18 } 19 void flagS(vector<vector<char>> &v) 20 { 21 int i,j; 22 for(j=0;j<v[0].size();j++) 23 { 24 DFS(v,0,j); 25 DFS(v,v.size()-1,j); 26 } 27 for(i=1;i<v.size()-1;i++) 28 { 29 DFS(v,i,0); 30 DFS(v,i,v[i].size()-1); 31 } 32 33 } 34 void flag(vector<vector<char>> &v) 35 { 36 int i,j; 37 for(i=0;i<v.size();i++) 38 { 39 for(j=0;j<v[i].size();j++) 40 { 41 if(v[i][j]=='O') 42 v[i][j]='X'; 43 if(v[i][j]=='Q') 44 v[i][j]='O'; 45 } 46 } 47 } 48 void solve(vector<vector<char>> &board) { 49 // Start typing your C/C++ solution below 50 // DO NOT write int main() function 51 if(board.size()==0) 52 return; 53 flagS(board); 54 flag(board); 55 56 } 57 };

 

posted on 2013-06-03 10:47  宇睿  阅读(131)  评论(0编辑  收藏  举报