Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save akiradeveloper/b7c7b0dbce7734d9a17e82a8729298e4 to your computer and use it in GitHub Desktop.
Save akiradeveloper/b7c7b0dbce7734d9a17e82a8729298e4 to your computer and use it in GitHub Desktop.
public editDistance(that: Table): number {
let dist = 0;
// swap distance
let xs = this.asColorSeq();
let ys = that.asColorSeq();
let n = xs.length;
for (let i=0; i<n; i++) {
if (xs[i] != ys[i]) {
dist += 0.5;
}
}
// flip distacne
let xxs = [ ...this.array2d.array1d ];
xxs.sort((a,b) => { return a.i - b.i});
let yys = [ ...that.array2d.array1d ];
yys.sort((a,b) => { return a.i - b.i});
for (let i=0; i<n; i++) {
if (xxs[i].flipped != yys[i].flipped) {
dist += 1;
}
}
return dist;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment