【牛客网华为机试】HJ52 计算字符串的距离

题目

描述

Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫Levenshtein Distance。

Ex:

字符串A:abcdefg

字符串B: abcdef

通过增加或是删掉字符”g”的方式达到目的。这两种方案都需要一次操作。把这个操作所需要的次数定义为两个字符串的距离。

要求:

给定任意两个字符串,写出一个算法计算它们的编辑距离。

本题含有多组输入数据。

输入描述:

每组用例一共2行,为输入的两个字符串

输出描述:

每组用例输出一行,代表字符串的距离

示例1

输入:

abcdefg
abcdef
abcde
abcdf
abcde
bcdef

输出:

1
1
2

解题思路

(1)编辑距离包括:替换,插入,删除,每个操作算一次

(2)使用规划求解

(3)构建m+1行, n+1列的dp矩阵

(4)以abcde与bcdef的编辑距离为例,构建6*6的

你可能感兴趣的:(牛客网刷题,华为,动态规划,算法,数据结构,编辑距离)