private float calcLevenDistance(String s, String t)
        {
            int n = s.Length;
            int m = t.Length;

            if (n == 0)
            {
                return(m);
            }
            if (m == 0)
            {
                return(n);
            }
            float[][] d = new float[n + 1][];
            for (int i = 0; i < n + 1; i++)
            {
                d[i] = new float[m + 1];
            }
            for (int i = 0; i <= n; i++)
            {
                d[i][0] = i;
            }

            for (int j = 0; j <= m; j++)
            {
                d[0][j] = j;
            }

            for (int i = 1; i <= n; i++)
            {
                for (int j = 1; j <= m; j++)
                {
                    float cost = dCostFunc.getCost(s, i - 1, t, j - 1);
                    d[i][j] = MathFuncs.min3(d[i - 1][j] + 1.0F, d[i][j - 1] + 1.0F, d[i - 1][j - 1] + cost);
                }
            }

            return(d[n][m]);
        }