In this

**HackerEarth Find the String problem solution**You are given a matrix of characters. The matrix has N rows and M columns. Given a string s, you have to tell if it is possible to generate that string from given matrix.Rules for generating string from matrix are:

You have to pick first character of string from row 1, second character from row 2 and so on. The character of string is to be picked from row 1, that is, you can traverse the (N + 1)th rows in a cyclic manner (row 1 comes after row N).

If an occurrence of a character is picked from a row, you cannot pick the same occurrence again from that row.

You have to print Yes if given string can be generated from matrix using the given rules, else print No.

## HackerEarth Find the String problem solution.

`#include<bits/stdc++.h>`

using namespace std;

int main()

{

int t;

cin>>t;

while(t--)

{

int n,m;

string s;

cin>>n>>m;

int f[1005][26]={0};

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

char temp;

cin>>temp;

f[i][temp-'a']++;

}

}

cin>>s;

bool check=1;

for(int i=0;i<s.size() && f;i++)

{

int lev=i%n;

if(f[lev][s[i]-'a'])f[lev][s[i]-'a']--;

else check=0;

}

if(check)cout<<"Yes\n";

else cout<<"No\n";

}

return 0;

}

## 0 Comments