...

Source file src/github.com/xrash/smetrics/hamming.go

Documentation: github.com/xrash/smetrics

     1  package smetrics
     2  
     3  import (
     4  	"fmt"
     5  )
     6  
     7  // The Hamming distance is the minimum number of substitutions required to change string A into string B. Both strings must have the same size. If the strings have different sizes, the function returns an error.
     8  func Hamming(a, b string) (int, error) {
     9  	al := len(a)
    10  	bl := len(b)
    11  
    12  	if al != bl {
    13  		return -1, fmt.Errorf("strings are not equal (len(a)=%d, len(b)=%d)", al, bl)
    14  	}
    15  
    16  	var difference = 0
    17  
    18  	for i := range a {
    19  		if a[i] != b[i] {
    20  			difference = difference + 1
    21  		}
    22  	}
    23  
    24  	return difference, nil
    25  }
    26  

View as plain text