1818
1919package processing .mode .experimental ;
2020
21+ import java .util .ArrayList ;
2122import java .util .HashMap ;
2223
2324/**
@@ -39,7 +40,7 @@ public static String reverse(String s) {
3940 return new String (w );
4041 }
4142
42- public static int minDistance (String word1 , String word2 ) {
43+ public int minDistance (String word1 , String word2 ) {
4344// word1 = reverse(word1);
4445// word2 = reverse(word2);
4546 int len1 = word1 .length ();
@@ -89,17 +90,24 @@ public static int minDistance(String word1, String word2) {
8990// }
9091// System.out.println();
9192// }
92- int maxLen = Math .max (len1 , len2 );
93- int pdeCodeMap [] = new int [maxLen ], javaCodeMap [] = new int [maxLen ];
94- System .out .println ("Edit distance1: " + dp [len1 ][len2 ]);
93+ // int maxLen = Math.max(len1, len2)+2;
94+ // int pdeCodeMap[] = new int[maxLen], javaCodeMap[] = new int[maxLen];
95+ // System.out.println("Edit distance1: " + dp[len1][len2]);
96+ ArrayList <OfsSet > alist = new ArrayList <Utils .OfsSet >();
9597 minDistInGrid (dp , len1 , len2 , 0 , 0 , word1 .toCharArray (),
96- word2 .toCharArray (), pdeCodeMap , javaCodeMap , maxLen );
98+ word2 .toCharArray (), alist );
9799 System .out .println ("PDE-to-Java" );
98- for (int i = 0 ; i < maxLen ; i ++) {
99- System .out .print (pdeCodeMap [i ] + " <-> " + javaCodeMap [i ]);
100- System .out .println (", " + word1 .charAt (pdeCodeMap [i ]) + " <-> "
101- + word2 .charAt (javaCodeMap [i ]));
100+ // for (int i = 0; i < maxLen; i++) {
101+ // System.out.print(pdeCodeMap[i] + " <-> " + javaCodeMap[i]);
102+ // System.out.println(", " + word1.charAt(pdeCodeMap[i]) + " <-> "
103+ // + word2.charAt(javaCodeMap[i]));
104+ // }
105+ for (int i = 0 ; i < alist .size (); i ++) {
106+ System .out .print (alist .get (i ).pdeOffset + " <-> " + alist .get (i ).javaOffset );
107+ System .out .println (", " + word1 .charAt (alist .get (i ).pdeOffset ) + " <-> "
108+ + word2 .charAt (alist .get (i ).javaOffset ));
102109 }
110+ System .out .println ("Length " + alist .size ());
103111 return dp [len1 ][len2 ];
104112 }
105113
@@ -126,15 +134,15 @@ public static int distance(String a, String b) {
126134 return costs [b .length ()];
127135 }
128136
129- public static void minDistInGrid (int g [][], int i , int j , int fi , int fj ,
130- char s1 [], char s2 [], int pdeCodeMap [],
131- int javaCodeMap [], int k ) {
137+ public void minDistInGrid (int g [][], int i , int j , int fi , int fj ,
138+ char s1 [], char s2 [], ArrayList set ) {
132139// if(i < s1.length)System.out.print(s1[i] + " <->");
133140// if(j < s2.length)System.out.print(s2[j]);
134141 if (i < s1 .length && j < s2 .length ) {
135- pdeCodeMap [k ] = i ;
136- javaCodeMap [k ] = j ;
137- System .out .print (s1 [i ] + " " + i + " <-> " + j + " " + s2 [j ] + " k = " + k );
142+ // pdeCodeMap[k] = i;
143+ // javaCodeMap[k] = j;
144+ System .out .print (s1 [i ] + " " + i + " <-> " + j + " " + s2 [j ]);
145+ set .add (new OfsSet (i , j ));
138146// if (s1[i] != s2[j])
139147// System.out.println("--");
140148 }
@@ -152,23 +160,28 @@ public static void minDistInGrid(int g[][], int i, int j, int fi, int fj,
152160 int mini = Math .min (a , Math .min (b , c ));
153161 if (mini == a ) {
154162 //System.out.println(s1[i + 1] + " " + s2[j]);
155- minDistInGrid (g , i - 1 , j , fi , fj , s1 , s2 , pdeCodeMap , javaCodeMap ,
156- k - 1 );
163+ minDistInGrid (g , i - 1 , j , fi , fj , s1 , s2 ,set );
157164 } else if (mini == b ) {
158165 //System.out.println(s1[i] + " " + s2[j + 1]);
159- minDistInGrid (g , i , j - 1 , fi , fj , s1 , s2 , pdeCodeMap , javaCodeMap ,
160- k - 1 );
166+ minDistInGrid (g , i , j - 1 , fi , fj , s1 , s2 , set );
161167 } else if (mini == c ) {
162168 //System.out.println(s1[i + 1] + " " + s2[j + 1]);
163- minDistInGrid (g , i - 1 , j - 1 , fi , fj , s1 , s2 , pdeCodeMap , javaCodeMap ,
164- k - 1 );
169+ minDistInGrid (g , i - 1 , j - 1 , fi , fj , s1 , s2 , set );
165170 }
166171 }
167172 }
173+
174+ public class OfsSet {
175+ public final int pdeOffset , javaOffset ;
176+ public OfsSet (int pde , int java ){
177+ pdeOffset = pde ;
178+ javaOffset = java ;
179+ }
180+ }
168181
169182 public static void main (String [] args ) {
170183// minDistance("c = #qwerty;", "c = 0xffqwerty;");
171- minDistance ("color g = #qwerty;" , "int g = 0xffqwerty;" );
184+ new Utils (). minDistance ("color g = #qwerty;" , "int g = 0xffqwerty;" );
172185// minDistance("int a = int(4.5);", "int a = PApplet.parseInt(4.5f);");
173186// minDistance("static void main(){;", "public static void main(){;");
174187// minDistance("#bb00aa", "0xffbb00aa");
0 commit comments