public static int calculateDistance(String a,int a1,int a2,String b,int b1,int b2) { if(a1>a2) { if(b1>b2) return 0; else return b2-b1+1; } if(b1>b2) { if(a1>a2) return 0; else return a2-a1+1; } if(a.charAt(a1)==b.charAt(b1)) return calculateDistance(a, a1+1, a2, b, b1+1, b2); else { int t1 = calculateDistance(a, a1+1, a2, b, b1, b2); int t2 = calculateDistance(a, a1+1, a2, b, b1+1, b2); int t3 = calculateDistance(a, a1, a2, b, b1+1, b2); return min(t1,t2,t3)+1; } }