logo

Hamming Két húr közötti távolság

Kapsz két egyenlő hosszúságú karakterláncot, meg kell találnod a Hamming távolság e karakterlánc között. 
Ahol a Hamming-távolság két egyenlő hosszúságú karakterlánc között azon pozíciók száma, amelyekben a megfelelő karakter eltérő. 

Példák: 

Input : str1[] = 'geeksforgeeks' str2[] = 'geeksandgeeks' Output : 3 Explanation : The corresponding character mismatch are highlighted. 'geeks  for  geeks' and 'geeks  and  geeks' Input : str1[] = '1011101' str2[] = '1001001' Output : 2 Explanation : The corresponding character mismatch are highlighted. '10  1  1  1  01' and '10  0  1  0  01'

Ezt a problémát meg lehet oldani egy egyszerű megközelítéssel, amelyben a karakterláncokat bejárjuk, és a megfelelő pozícióban megszámoljuk az eltérést. A probléma kiterjesztett formája az távolság szerkesztése.



Algoritmus: 

int hammingDist(char str1[] char str2[]) { int i = 0 count = 0; while(str1[i]!='') { if (str1[i] != str2[i]) count++; i++; } return count; }

Az alábbiakban két karakterlánc megvalósítása látható. 

C++
// C++ program to find hamming distance b/w two string #include    using namespace std; // function to calculate Hamming distance int hammingDist(string str1 string str2) {  int i = 0 count = 0;  while (str1[i] != '') {  if (str1[i] != str2[i])  count++;  i++;  }  return count; } // driver code int main() {  string str1 = 'geekspractice';  string str2 = 'nerdspractise';  // function call  cout << hammingDist(str1 str2);  return 0; } // This code is contributed by Sania Kumari Gupta (kriSania804) 
C
// C program to find hamming distance b/w two string #include  // function to calculate Hamming distance int hammingDist(char* str1 char* str2) {  int i = 0 count = 0;  while (str1[i] != '') {  if (str1[i] != str2[i])  count++;  i++;  }  return count; } // driver code int main() {  char str1[] = 'geekspractice';  char str2[] = 'nerdspractise';  // function call  printf('%d' hammingDist(str1 str2));  return 0; } // This code is contributed by Sania Kumari Gupta // (kriSania804) 
Java
// Java program to find hamming distance b/w two string class GFG {  // function to calculate Hamming distance  static int hammingDist(String str1 String str2)  {  int i = 0 count = 0;  while (i < str1.length()) {  if (str1.charAt(i) != str2.charAt(i))  count++;  i++;  }  return count;  }  // Driver code  public static void main(String[] args)  {  String str1 = 'geekspractice';  String str2 = 'nerdspractise';  // function call  System.out.println(hammingDist(str1 str2));  } } // This code is contributed by Sania Kumari Gupta // (kriSania804) 
Python3
# Python3 program to find  # hamming distance b/w two  # string  # Function to calculate # Hamming distance  def hammingDist(str1 str2): i = 0 count = 0 while(i < len(str1)): if(str1[i] != str2[i]): count += 1 i += 1 return count # Driver code  str1 = 'geekspractice' str2 = 'nerdspractise' # function call  print(hammingDist(str1 str2)) # This code is contributed by avanitrachhadiya2155 
C#
// C# program to find hamming  // distance b/w two string using System; class GFG {   // function to calculate  // Hamming distance static int hammingDist(String str1   String str2) {  int i = 0 count = 0;  while (i < str1.Length)  {  if (str1[i] != str2[i])  count++;  i++;  }  return count; }  // Driver code  public static void Main () {  String str1 = 'geekspractice';  String str2 = 'nerdspractise';  // function call  Console.Write(hammingDist(str1 str2)); } } // This code is contributed by nitin mittal 
PHP
 // PHP program to find hamming distance b/w  // two string // function to calculate // Hamming distance function hammingDist($str1 $str2) { $i = 0; $count = 0; while (isset($str1[$i]) != '') { if ($str1[$i] != $str2[$i]) $count++; $i++; } return $count; } // Driver Code $str1 = 'geekspractice'; $str2 = 'nerdspractise'; // function call echo hammingDist ($str1 $str2); // This code is contributed by nitin mittal. ?> 
JavaScript
<script> // JavaScript program to find hamming distance b/w // two string // function to calculate Hamming distance function hammingDist(str1 str2) {  let i = 0 count = 0;  while (i < str1.length)  {  if (str1[i] != str2[i])  count++;  i++;  }  return count; } // driver code  let str1 = 'geekspractice';  let str2 = 'nerdspractise';  // function call  document.write(hammingDist (str1 str2)); // This code is contributed by Manoj. </script> 

Kimenet
4

Időbonyolultság: O(n)

Jegyzet: Két bináris szám Hamming-távolságánál egyszerűen visszaadhatjuk a beállított bitek számát két szám XOR-jában.

Kvíz létrehozása