repsaj.bots.domoticz.logic/Helpers/StringMatching.cs
/// <summary>
/// Compute the distance between two strings.
/// </summary>
Compute the distance between two strings.
Compute the distance between two strings .
internal static int ComputeLevenshteinDistance(string s, string t)
        {
            int n = s.Length;
            int m = t.Length;
            int[,] d = new int[n + 1, m + 1];
            if (n == 0)
            {
                return m;
            }
            if (m == 0)
            {
                return n;
            }
            for (int i = 0; i <= n; d[i, 0] = i++)
            {
            }
            for (int j = 0; j <= m; d[0, j] = j++)
            {
            }
            for (int i = 1; i <= n; i++)
            {
                for (int j = 1; j <= m; j++)
                {
                    int cost = (t[j - 1] == s[i - 1]) ? 0 : 1;
                    d[i, j] = Math.Min(
                        Math.Min(d[i - 1, j] + 1, d[i, j - 1] + 1),
                        d[i - 1, j - 1] + cost);
                }
            }
            return d[n, m];
        }
internal static int ComputeLevenshteinDistance ( string s , string t ) { int n = s . Length ; int m = t . Length ; int [ , ] d = new int [ n + 1 , m + 1 ] ; if ( n == 0 ) { return m ; } if ( m == 0 ) { return n ; } for ( int i = 0 ; i <= n ; d [ i , 0 ] = i ++ ) { } for ( int j = 0 ; j <= m ; d [ 0 , j ] = j ++ ) { } for ( int i = 1 ; i <= n ; i ++ ) { for ( int j = 1 ; j <= m ; j ++ ) { int cost = ( t [ j - 1 ] == s [ i - 1 ] ) ? 0 : 1 ; d [ i , j ] = Math . Min ( Math . Min ( d [ i - 1 , j ] + 1 , d [ i , j - 1 ] + 1 ) , d [ i - 1 , j - 1 ] + cost ) ; } } return d [ n , m ] ; }
Compute the distance between two strings.
Compute the distance between two strings .
// Step 1 // Step 2 // Step 3 //Step 4 // Step 5 // Step 6 // Step 7
s
string
t
string