Development - Advanced, exercise 27
Text
The Quick Gestalt Pattern Matching is a statistic used for comparing the similarity of two strings. In particular, given two strings S and T, the measure is calculated by considering twice the number Km of all used characters in S which occur in T divided by the sum of the number of characters in S and T:
2 * K
m
--------- |S| + |T|
Write an algorithm in Python – def qgpm(s, t)
– which takes in input two strings and returns the Gestalt Pattern Matching statistic.
Solution
# Test case for the function
def test_qgpm(s, t, expected):
result = qgpm(s, t)
if expected == result:
return True
else:
return False
# Code of the function
def qgpm(s, t):
common = 0
t_list = list(t)
for c in s:
if c in t_list:
common += 1
t_list.remove(c)
return (2 * common) / (len(s) + len(t))
# Tests
print(test_qgpm("ciao", "ciao", 1))
print(test_qgpm("mummy", "my", 4 / 7))
print(test_qgpm("m", "mummy", 2 / 6))
Additional material
The runnable Python file is available online.