1. You've mentioned in 1c that there might be false-positives. So my question is - if we find a fingerprint match, do we need to check that it's not a false-positive by comparing the actual substrings? Otherwise the text1 and text2 parameters are not used.
2. In the 'find_longest' implementation, when calling has_match, the expected result is a string, although we were asked to return a boolean value.