class Solution {
public:
/**
* 判断岛屿数量
* @param grid char字符型vector<vector<>>
* @return int整型
*/
bool island(int x,int y,vector<vector<char>> &a){
return x>-1 && y>-1 && x<a.size() && y<a[0].size() && a[x][y]=='1';
}
void dfs(int x,int y,vector<vector<char>> &a){
a[x][y]='0';
if(island(x-1,y,a))
dfs(x-1,y,a);
if(island(x+1,y,a))
dfs(x+1,y,a);
if(island(x,y+1,a))
dfs(x,y+1,a);
if(island(x,y-1,a))
dfs(x,y-1,a);
}
int solve(vector<vector<char> >& grid) {
// write code here
int num=0;
for(int i=0;i<grid.size();i++){
for(int j=0;j<grid[0].size();j++){
if(grid[i][j]=='1'){
num++;
dfs(i,j,grid);
}
}
}
return num;
}
};