3
int dx[4] = {-1, 1, 0, 0};4
int dy[4] = {0, 0, 1, -1};5
bool solve(vector<vector<char>> &grid, int i, int j, int m, int n, int x, int y,6
vector<vector<int>> &vis, char startChar) {8
for (int k = 0; k < 4; k++) {11
if (xx >= 0 && yy >= 0 && xx < m && yy < n && grid[xx][yy] == startChar &&12
!(x == xx && y == yy)) {13
if (vis[xx][yy] || solve(grid, xx, yy, m, n, i, j, vis, startChar)) return true;19
bool containsCycle(vector<vector<char>> &grid) {21
int n = grid[0].size();22
vector<vector<int>> vis(m, vector<int>(n, 0));23
for (int i = 0; i < m; i++) {24
for (int j = 0; j < n; j++) {25
if (!vis[i][j] && solve(grid, i, j, m, n, -1, -1, vis, grid[i][j])) {