Advertisement
framp

Finding crossed words (uncommented)

May 23rd, 2011
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. bool checkV(char * C, int m, int n, char * P, int lung, int posM, int posN){
  5.   for (int j=posN; j<posN+lung; j++){
  6.     int startM = posM-(j-posN);
  7.     int c = 0;
  8.     if (startM>=0 && startM+lung<=m)
  9.       for (int i=startM; i<startM+lung; i++){
  10.     if (C[i*n+j]==P[c]){
  11.       if (c==lung-1) return true;
  12.       c++;
  13.     }
  14.       }
  15.   }
  16.   return false;
  17. }
  18.  
  19. bool check(char * C, int m, int n, char * P, int lung){
  20.   for (int i=0; i<m; i++){
  21.     int c = 0;
  22.     for (int j=0; j<n; j++){
  23.       if (C[i*n+j]==P[c]){
  24.     if (c==lung-1 && checkV(C, m, n, P, lung, i, j-c))
  25.       return true;
  26.     c++;
  27.       }else if (n-j<=lung){
  28.     break;
  29.       }
  30.     }
  31.   }
  32.   return false;
  33. }
  34.  
  35.  
  36.  
  37. int main(){
  38.   int m = 6, n=8;
  39.   char C[48] = {
  40.     'a', 's', 'd', 'p', 'g', 'h', 'j', 'p',
  41.     'e', 'r', 'p', 'i', 'p', 'p', 'o', 'i',
  42.     'r', 'r', 'i', 'l', 'h', '5', 'r', 'p',
  43.     'y', 'y', 'p', 'p', 'i', 'p', 'p', 'p',
  44.     't', 'y', 'o', 'p', 'i', 'p', 'p', 'o',
  45.     'f', 'g', 'r', 'w', 'a', 'r', 'g', 'h'
  46.   };
  47.   int lung = 5;
  48.   char P[5] = {'p', 'i', 'p', 'p', 'o'};
  49.  
  50.   cout << check(&C[0], m, n, &P[0], lung) << "\n";
  51.  
  52.  
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement