Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- bool checkV(char * C, int m, int n, char * P, int lung, int posM, int posN){
- for (int j=posN; j<posN+lung; j++){
- int startM = posM-(j-posN);
- int c = 0;
- if (startM>=0 && startM+lung<=m)
- for (int i=startM; i<startM+lung; i++){
- if (C[i*n+j]==P[c]){
- if (c==lung-1) return true;
- c++;
- }
- }
- }
- return false;
- }
- bool check(char * C, int m, int n, char * P, int lung){
- for (int i=0; i<m; i++){
- int c = 0;
- for (int j=0; j<n; j++){
- if (C[i*n+j]==P[c]){
- if (c==lung-1 && checkV(C, m, n, P, lung, i, j-c))
- return true;
- c++;
- }else if (n-j<=lung){
- break;
- }
- }
- }
- return false;
- }
- int main(){
- int m = 6, n=8;
- char C[48] = {
- 'a', 's', 'd', 'p', 'g', 'h', 'j', 'p',
- 'e', 'r', 'p', 'i', 'p', 'p', 'o', 'i',
- 'r', 'r', 'i', 'l', 'h', '5', 'r', 'p',
- 'y', 'y', 'p', 'p', 'i', 'p', 'p', 'p',
- 't', 'y', 'o', 'p', 'i', 'p', 'p', 'o',
- 'f', 'g', 'r', 'w', 'a', 'r', 'g', 'h'
- };
- int lung = 5;
- char P[5] = {'p', 'i', 'p', 'p', 'o'};
- cout << check(&C[0], m, n, &P[0], lung) << "\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement