package com.mytest.testcallable;three
public class Test {
public static void main(String[] args) {
String i= "養老院";
String j = "敬老院";
System.out.println(getFamiliar(i, j));
// System.out.println(getMinest(1, 2, 3));get
}class
public static int familiar(String str1,String str2){test
int str1Length = str1.length();
int str2Length = str2.length();
char s1;
char s2;
int cycleNum1;
int cycleNum2;
int temp;
int [][] array;
if(str1Length==0){
return str2Length;
}float
if(str2Length==0){
return str1Length;
}call
array = new int[str1Length+1][str2Length+1];static
for(cycleNum1=0;cycleNum1<=str1Length;cycleNum1++){
array[cycleNum1][0] = cycleNum1;
}co
for(cycleNum2=0;cycleNum2<=str2Length;cycleNum2++){
array[0][cycleNum2] = cycleNum2;
}
for(cycleNum1=1;cycleNum1<=str1Length;cycleNum1++){
s1 = str1.charAt(cycleNum1-1);
for(cycleNum2=1;cycleNum2<=str2Length;cycleNum2++){
s2 = str2.charAt(cycleNum2-1);
if(s1==s2){
temp=0;
}else{
temp=1;
}new
array[cycleNum1][cycleNum2] = getMinest(array[cycleNum1][cycleNum2-1]+1, array[cycleNum1-1][cycleNum2]+1, array[cycleNum1-1][cycleNum2-1]+temp);
}
}
return array[str1Length][str2Length];
}return
public static int getMinest(int one,int two,int three){ return (one = one< two? one:two)<three ?one:three; } public static float getFamiliar(String str1,String str2){ return 1-(float)familiar(str1,str2)/Math.max(str1.length(), str2.length()); } }