logo

Hamming Distanza tra due corde

Ti vengono fornite due stringhe di uguale lunghezza che devi trovare Distanza di Hamming tra queste corde. 
Dove la distanza di Hamming tra due stringhe di uguale lunghezza è il numero di posizioni in cui il carattere corrispondente è diverso. 

Esempi: 

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'

Questo problema può essere risolto con un approccio semplice in cui attraversiamo le stringhe e contiamo il disadattamento nella posizione corrispondente. La forma estesa di questo problema è modificare la distanza.



Algoritmo: 

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

Di seguito è riportata l'implementazione di due stringhe. 

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> 

Produzione
4

Complessità temporale: O(n)

Nota: Per la distanza di Hamming di due numeri binari possiamo semplicemente restituire un conteggio di bit impostati in XOR di due numeri.

Crea quiz