Bu video ile, anlatmaya çalışacağım algoritmalara giriş yapıyoruz. Hamming distance algoritması, size verilen iki adet string’in, aynı pozisyondaki karakterlerinden farklı olanların sayısını bulma işlemidir.
Örneğin; “karolin” and “kathrin” string’lerine bakalım. Aynı indislerde olan karakterlere baktığımızda, 2, 3 ve 4. indislerdeki karakterlerin birbiri ile aynı olmadığını görüyoruz. Bu nedenle bu iki string’in hamming distance’ı 3 olmuş oluyor.
kaROLin — “rol”
kaTHRin — “thr”
► Hamming Distance Nedir? https://tr.wikipedia.org/wiki/Hamming_uzakl%C4%B1%C4%9F%C4%B1
Hamming uzaklığı aynı uzunluktaki iki dizenin farklı elemanlarının sayısıdır. Hamming uzaklığı adı Richard Hamming’in adından gelir.
► Hamming distance: https://en.wikipedia.org/wiki/Hamming_distance
In information theory, the Hamming distance between two strings of equal length is the number of positions at which the corresponding symbols are different. In other words, it measures the minimum number of substitutions required to change one string into the other, or the minimum number of errors that could have transformed one string into the other. In a more general context, the Hamming distance is one of several string metrics for measuring the edit distance between two sequences. It is named after the American mathematician Richard Hamming.
/// <summary>
/// Verilen iki string arasındaki hamming distance'ı hesaplar.
/// </summary>
static int HammingDistance(string s1, string s2)
{
if(s1.Length != s2.Length)
{
throw new Exception("Strings must be of the same length");
}
var diffCount = 0;
for(var i = 0; i < s1.Length; i++)
{
if(s1[i] != s2[i])
diffCount++;
}
return diffCount;
}