Note that there are some explanatory texts on larger screens.

plurals
  1. POstring-comparison algorithm for user defined dictionary
    primarykey
    data
    text
    <p>In my project the user input is translated to a string in the form of <code>[x,x,x,x,x,x,x,x,x,x]</code> where x is a number between 1 and 8 and stored to a library of this type of strings. Later I have to compare the user new input with every string in that library. </p> <p>So I'm trying to find the similarity between two strings of the mention format. I tried the Levenhstein distance algorithm but it does not suit my needs. For the strings <code>[1,8,7,6,5,4,3,2,0,0]</code> and <code>[1,7,6,5,4,3,2,0,0,0]</code>, Levenhstein finds distance of 7 while in my prospective the distance is only one. Levenhstein only edits each character but does not shift the characters. </p> <p>Can someone suggest another spell-check or string-compare algorithm with the criteria I mentioned before?</p> <p>Levenshtein algorithm I used:</p> <pre><code>public static int getLevenshteinDistance(String s, String t) { if (s == null || t == null) { throw new IllegalArgumentException("Strings must not be null"); } int d[][]; // matrix int n; // length of s int m; // length of t int i; // iterates through s int j; // iterates through t char s_i; // ith character of s char t_j; // jth character of t int cost; // cost // Step 1 n = s.length(); m = t.length(); if (n == 0) { return m; } if (m == 0) { return n; } d = new int[n + 1][m + 1]; // Step 2 for (i = 0; i &lt;= n; i++) { d[i][0] = i; } for (j = 0; j &lt;= m; j++) { d[0][j] = j; } // Step 3 for (i = 1; i &lt;= n; i++) { s_i = s.charAt(i - 1); // Step 4 for (j = 1; j &lt;= m; j++) { t_j = t.charAt(j - 1); // Step 5 if (s_i == t_j) { cost = 0; } else { cost = 1; } // Step 6 d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost); } } // Step 7 return d[n][m]; } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload