Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.65 KB | None | 0 0
  1. void getMoves(size_t* moves, char* pattern) {
  2.     for (size_t i = lengthOfTemplate - 2; i > 0; i--) {
  3.         if (moves[(int)pattern[i]] == lengthOfTemplate) {
  4.             moves[(int)pattern[i]] = lengthOfTemplate - i - 1;
  5.         }
  6.     }
  7.     if (moves[(int)pattern[0]] == lengthOfTemplate) {
  8.         moves[(int)pattern[0]] = lengthOfTemplate - 1;
  9.     }
  10. }
  11. size_t getCurrentMove(char* pattern, char* buffer, size_t* moves, size_t currentIndex) {
  12.     for (size_t i = lengthOfTemplate - 1; i > 0; i--) {
  13.         printf("%zu ", currentIndex--);
  14.         if (buffer[i] != pattern[i]) {
  15.             return moves[buffer[lengthOfTemplate - 1]];
  16.         }
  17.     }
  18.     if (buffer[0] != pattern[0]) {
  19.         return lengthOfTemplate;
  20.     }
  21. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement