public class Tools
{
public static int maxOverlapLength(String s1, String s2)
{
int max = 0;
int min = 0;
// The longest overlap can only be as large as the smallest word
if ( s1.length() <= s2.length() )
min = s1.length();
else
min = s2.length();
// Check overlap of i characters
// s1: ......... s2: ..........
// ^---> <---^
// | |
// s.len()-i i
for ( int i = 1; i < min; i++ )
{
String x1 = s1.substring( s1.length()-i );
String x2 = s2.substring(0, i);
if ( x1.equals(x2) )
max = x1.length();
}
return max;
}
}
public class MyProg
{
public static void main(String[] args)
{
String x1, x2;
x1 = "Frodo"; x2 = "odometer";
System.out.println( x1 + " " + x2 + " = " + Tools.maxOverlapLength(x1, x2) );
x1 = "Frodo"; x2 = "Odometer";
System.out.println( x1 + " " + x2 + " = " + Tools.maxOverlapLength(x1, x2) );
x1 = "Frodo"; x2 = "od";
System.out.println( x1 + " " + x2 + " = " + Tools.maxOverlapLength(x1, x2) );
x1 = "Frodo"; x2 = "do";
System.out.println( x1 + " " + x2 + " = " + Tools.maxOverlapLength(x1, x2) );
x1 = "abcabcabc"; x2 = "bcabcxx";
System.out.println( x1 + " " + x2 + " = " + Tools.maxOverlapLength(x1, x2) );
}
}
|