1 package com;
2
3 public class DistanceScore {
4 public static void main(String[] args) {
5 System.out.println(score("hello", "hello"));
6
7 }
8 static double score(String word , String word2){
9 int w1 = word.length(); //横
10 int w2 = word2.length(); //纵
11 int [][] arr = new int[w1+1][w2+1];
12 if(w1 == 0 || w2 == 0)
13 return (1 - 0);
14 for (int i = 0; i < w1; i++) {
15 arr[i][0] = i ;
16 }
17 for (int i = 0; i < w2; i++) {
18 arr[0][i] = i ;
19 }
20 for (int i = 1; i <= w1; i++) {
21 int cost = 1 ;
22 char ch1 = word.charAt(i - 1);
23 for (int j = 1; j <= w2; j++) {
24 char ch2 = word2.charAt(j - 1 );
25 if(ch1 == ch2 )
26 cost = 0 ;
27 arr[i][j] = Math.min(Math.min(arr[i-1][j] + 1, arr[i][j-1] + 1 ) , arr[i-1][j-1] + cost);
28 }
29 }
30 return 1 - (double)arr[w1][w2] / Math.max(w1, w2) ;
31 }
32 }