You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by he...@apache.org on 2011/12/19 19:31:26 UTC

svn commit: r1220882 - /incubator/airavata/trunk/modules/xbaya-gui/src/test/java/org/apache/airavata/xbaya/interpreter/LevenshteinDistanceService.java

Author: heshan
Date: Mon Dec 19 18:31:26 2011
New Revision: 1220882

URL: http://svn.apache.org/viewvc?rev=1220882&view=rev
Log:
Adding the service to calculate LevenshteinDistance AIRAVATA-225

Added:
    incubator/airavata/trunk/modules/xbaya-gui/src/test/java/org/apache/airavata/xbaya/interpreter/LevenshteinDistanceService.java

Added: incubator/airavata/trunk/modules/xbaya-gui/src/test/java/org/apache/airavata/xbaya/interpreter/LevenshteinDistanceService.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/test/java/org/apache/airavata/xbaya/interpreter/LevenshteinDistanceService.java?rev=1220882&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/test/java/org/apache/airavata/xbaya/interpreter/LevenshteinDistanceService.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/test/java/org/apache/airavata/xbaya/interpreter/LevenshteinDistanceService.java Mon Dec 19 18:31:26 2011
@@ -0,0 +1,38 @@
+package org.apache.airavata.xbaya.interpreter;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: heshan
+ * Date: 12/18/11
+ * Time: 4:15 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class LevenshteinDistanceService {
+    public static int computeDistance(CharSequence sequence1, CharSequence sequence2) {
+        int[][] distance = new int[sequence1.length() + 1][sequence2.length() + 1];
+
+        for (int i = 0; i <= sequence1.length(); i++) {
+            distance[i][0] = i;
+        }
+        for (int j = 0; j <= sequence2.length(); j++) {
+            distance[0][j] = j;
+        }
+
+        for (int i = 1; i <= sequence1.length(); i++) {
+            for (int j = 1; j <= sequence2.length(); j++) {
+                distance[i][j] = min(distance[i - 1][j] + 1, distance[i][j - 1] + 1, distance[i - 1][j - 1] + ((sequence1.charAt(i - 1) == sequence2.charAt(j - 1)) ? 0 : 1));
+            }
+        }
+
+         //return "distance=" +distance[sequence1.length()][sequence2.length()];
+         return distance[sequence1.length()][sequence2.length()];
+    }
+
+    private static int min(int a, int b, int c) {
+        return Math.min(Math.min(a, b), c);
+    }
+
+    public static void main(String[] args) {
+        System.out.println(computeDistance("abcccdsfgsfdg", "fq"));
+    }
+}