- Notifications
You must be signed in to change notification settings - Fork 46.7k
/
Copy pathhamming_distance.py
40 lines (31 loc) · 1.03 KB
/
hamming_distance.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
defhamming_distance(string1: str, string2: str) ->int:
"""Calculate the Hamming distance between two equal length strings
In information theory, the Hamming distance between two strings of equal
length is the number of positions at which the corresponding symbols are
different. https://en.wikipedia.org/wiki/Hamming_distance
Args:
string1 (str): Sequence 1
string2 (str): Sequence 2
Returns:
int: Hamming distance
>>> hamming_distance("python", "python")
0
>>> hamming_distance("karolin", "kathrin")
3
>>> hamming_distance("00000", "11111")
5
>>> hamming_distance("karolin", "kath")
Traceback (most recent call last):
...
ValueError: String lengths must match!
"""
iflen(string1) !=len(string2):
raiseValueError("String lengths must match!")
count=0
forchar1, char2inzip(string1, string2):
ifchar1!=char2:
count+=1
returncount
if__name__=="__main__":
importdoctest
doctest.testmod()