擅长:python、mysql、java
<p>我试过这个方法,希望对你有用</p>
<pre><code>def edit_distance(word, string_to_take_distance_with = "someString"):
'''
Description:
give you the edit distance between 2 words
word : String 1 (dynamic)
string_to_take_distance_with : String 2 (static)
'''
length_of_string = len(word)+1
length_of_string2 = len(string_to_take_distance_with)+1
tbl = {}
for i in range(length_of_string): tbl[i,0]=i
for j in range(length_of_string2): tbl[0,j]=j
for i in range(1, length_of_string):
for j in range(1, length_of_string2):
cost = 0 if word[i-1] == string_to_take_distance_with[j-1] else 1
tbl[i,j] = min(tbl[i, j-1]+1, tbl[i-1, j]+1, tbl[i-1, j-1]+cost)
return tbl[i,j]
sorted(["hello","helo","aen"], key=edit_distance)
</code></pre>