Skip to content

Commit 7d4a983

Browse files
authored
Merge pull request #708 from tanishagarg1803/master
added new recursion question
2 parents 67a8a04 + 5b9099d commit 7d4a983

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

03. Recursion/FindTheStringInGrid.cpp

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
4+
// } Driver Code Ends
5+
class Solution
6+
{
7+
public:
8+
vector<vector<int>> searchWord(vector<vector<char>> grid, string word)
9+
{
10+
vector<vector<int>> ans;
11+
int n = grid.size();
12+
int m = grid[0].size();
13+
for (int i = 0; i < n; i++)
14+
{
15+
for (int j = 0; j < m; j++)
16+
{
17+
if (grid[i][j] == word[0] && isword(i, j, word, grid))
18+
{
19+
ans.push_back({i, j});
20+
}
21+
}
22+
}
23+
return ans;
24+
// Code here
25+
}
26+
bool isword(int i, int j, string word, vector<vector<char>> grid)
27+
{
28+
vector<vector<int>> dirs = {{0, 1}, {1, 0}, {-1, 0}, {0, -1}, {1, 1}, {-1, -1}, {1, -1}, {-1, 1}};
29+
int n = grid.size();
30+
int m = grid[0].size();
31+
for (auto dir : dirs)
32+
{
33+
int mini = i, minj = j;
34+
int c = 0;
35+
while (mini >= 0 && minj >= 0 && mini < n && minj < m && c < word.length() && grid[mini][minj] == word[c])
36+
{
37+
mini = mini + dir[0];
38+
minj = minj + dir[1];
39+
c++;
40+
}
41+
if (c == word.length())
42+
{
43+
return true;
44+
}
45+
}
46+
return false;
47+
}
48+
};
49+
50+
// { Driver Code Starts.
51+
int main()
52+
{
53+
int tc;
54+
cin >> tc;
55+
while (tc--)
56+
{
57+
int n, m;
58+
cin >> n >> m;
59+
vector<vector<char>> grid(n, vector<char>(m, 'x'));
60+
for (int i = 0; i < n; i++)
61+
{
62+
for (int j = 0; j < m; j++)
63+
cin >> grid[i][j];
64+
}
65+
string word;
66+
cin >> word;
67+
Solution obj;
68+
vector<vector<int>> ans = obj.searchWord(grid, word);
69+
for (auto i : ans)
70+
{
71+
for (auto j : i)
72+
cout << j << " ";
73+
cout << "\n";
74+
}
75+
if (ans.size() == 0)
76+
{
77+
cout << "-1\n";
78+
}
79+
}
80+
return 0;
81+
} // } Driver Code Ends

0 commit comments

Comments
 (0)