docs: public static int commonOverlap(String text1, String text2) {
          // Cache the text lengths to prevent multiple calls.
          int text1_length = text1.length();
          int text2_length = text2.length();
          // Eliminate the null case.
          if (text1_length == 0 || text2_length == 0) {
              return 0;
          }
          // Truncate the longer string.
          if (text1_length > text2_length) {
              text1 = text1.substring(text1_length - text2_length);
          } else if (text1_length < text2_length) {
              text2 = text2.substring(0, text1_length);
          }
          int text_length = Math.min(text1_length, text2_length);
          // Quick check for the worst case.
          if (text1.equals(text2)) {
              return text_length;
          }
  
          // Start by looking for a single character match
          // and increase length until no match is found.
          // Performance analysis: http://neil.fraser.name/news/2010/11/04/
          int best = 0;
          int length = 1;
          while (true) {
              String pattern = text1.substring(text_length - length);
              int found = text2.indexOf(pattern);
              if (found == -1) {
                  return best;
              }
              length += found;
              if (found == 0 || text1.substring(text_length - length).equals(
                      text2.substring(0, length))) {
                  best = length;
                  length++;
              }
          }
      }