Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.15 KB | None | 0 0
  1. int isSimilar(wchar_t** a, int aSize, wchar_t** b, int bSize, int misses){
  2.         if(misses<0)
  3.                 return misses;
  4.         if(aSize <= 0 || bSize <= 0)
  5.                 return misses - (aSize>bSize) ? aSize : bSize;
  6.         while(!wcscmp(*a, *b)){
  7.                 a++;
  8.                 aSize--;
  9.                 b++;
  10.                 bSize--;
  11.                 if(aSize <= 0 || bSize <= 0)
  12.                         return misses;
  13.         }
  14.         int aRes = isSimilar(a+1, aSize-1, b, bSize, misses-1);
  15.         int bRes = isSimilar(a, aSize, b+1, bSize-1, misses-1);
  16.         int cRes = isSimilar(a+1, aSize-1, b+1, bSize-1, misses-1);
  17.         int maxSimilar =  (aRes>bRes) ? aRes : bRes;
  18.         maxSimilar = (maxSimilar > cRes) ? maxSimilar : cRes;
  19.         return maxSimilar;
  20. }
  21.  
  22. int findSimilar(Text *txt, Sentence *stc){
  23.     for (int i = 0; i<txt->size; i++){
  24.         int status = isSimilar(txt->text[i].sentence, txt->text[i].size, stc->sentence, stc->size, 1);
  25.         if(status>=0)
  26.                 return i; //Найдено предложение с индексом i
  27.     }
  28.     return -1; //Предложений не найдено
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement