同步操作将从 编程语言算法集/Python 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
"""This script is a implementation of the Damerau-Levenshtein distance algorithm.It's an algorithm that measures the edit distance between two string sequencesMore information about this algorithm can be found in this wikipedia article:https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance"""def damerau_levenshtein_distance(first_string: str, second_string: str) -> int:"""Implements the Damerau-Levenshtein distance algorithm that measuresthe edit distance between two strings.Parameters:first_string: The first string to comparesecond_string: The second string to compareReturns:distance: The edit distance between the first and second strings>>> damerau_levenshtein_distance("cat", "cut")1>>> damerau_levenshtein_distance("kitten", "sitting")3>>> damerau_levenshtein_distance("hello", "world")4>>> damerau_levenshtein_distance("book", "back")2>>> damerau_levenshtein_distance("container", "containment")3>>> damerau_levenshtein_distance("container", "containment")3"""# Create a dynamic programming matrix to store the distancesdp_matrix = [[0] * (len(second_string) + 1) for _ in range(len(first_string) + 1)]# Initialize the matrixfor i in range(len(first_string) + 1):dp_matrix[i][0] = ifor j in range(len(second_string) + 1):dp_matrix[0][j] = j# Fill the matrixfor i, first_char in enumerate(first_string, start=1):for j, second_char in enumerate(second_string, start=1):cost = int(first_char != second_char)dp_matrix[i][j] = min(dp_matrix[i - 1][j] + 1, # Deletiondp_matrix[i][j - 1] + 1, # Insertiondp_matrix[i - 1][j - 1] + cost, # Substitution)if (i > 1and j > 1and first_string[i - 1] == second_string[j - 2]and first_string[i - 2] == second_string[j - 1]):# Transpositiondp_matrix[i][j] = min(dp_matrix[i][j], dp_matrix[i - 2][j - 2] + cost)return dp_matrix[-1][-1]if __name__ == "__main__":import doctestdoctest.testmod()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。