Du får to like lange strenger du må finne Hamming avstand mellom disse strengene.
Hvor Hamming-avstanden mellom to strenger av lik lengde er antallet posisjoner der det tilsvarende tegnet er forskjellig.
Eksempler:
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'
Dette problemet kan løses med en enkel tilnærming der vi krysser strengene og teller misforholdet i den tilsvarende posisjonen. Den utvidede formen for dette problemet er rediger avstand.
Algoritme:
int hammingDist(char str1[] char str2[]) { int i = 0 count = 0; while(str1[i]!=' ') { if (str1[i] != str2[i]) count++; i++; } return count; } Nedenfor er implementeringen av to strenger.
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>
Produksjon
4
Tidskompleksitet: O(n)
Note: For Hamming-avstand på to binære tall kan vi ganske enkelt returnere en telling av satt biter i XOR av to tall.
Lag quiz