Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- size_t goLeft(size_t a, size_t b, const string& pattern, const string& text,
- const SuffixArray& suffixArr, size_t prev) {
- if (a > b) return prev;
- size_t mid = (a + b)/2;
- if (!equalityCheck(pattern, text.substr(suffixArr[mid]))) {
- return goLeft(mid+1, b, pattern, text, suffixArr, prev);
- }
- return goLeft(0, mid-1, pattern, text, suffixArr, mid);
- }
- size_t goRight(size_t a, size_t b, const string& pattern, const string& text,
- const SuffixArray& suffixArr, size_t prev) {
- if (a > b) return prev;
- size_t mid = (a + b)/2;
- if (!equalityCheck(pattern, text.substr(suffixArr[mid]))) {
- return goRight(0, mid-1, pattern, text, suffixArr, prev);
- }
- return goRight(mid+1, b, pattern, text, suffixArr, mid);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement