这篇我们看看最长公共子序列的另一个版本,求字符串相似度(编辑距离),我也说过了,这是一个非常实用的算法,在DNA对比,网页聚类等方面都有用武之地。一:概念对于两个字符串A和B,通过基本的增删改将字符串A改成B,或者将B改成A,在改变的过程中使用的最少步骤称之为:编辑距离。比如如下的字符串:我们通过种种操作,痉挛之后编辑距离为3,不知道你看出来了没有?二:解析可能大家觉得有点复杂,不好理解,我试着把
分类:
编程语言 时间:
2020-09-09 18:58:03
阅读次数:
39
如何量化两个字符串之间的相似程度呢?有一个非常著名的量化方法,那就是编辑距离(Edit Distance)。 编辑距离指的就是,将一个字符串转化成另一个字符串,需要的最少编辑操作次数(比如增加一个字符、删除一个字符、替换一个字符)。编辑距离越大,说明两个字符串的相似程度越小;相反,编辑距离就越小,说 ...
分类:
其他好文 时间:
2020-08-18 13:57:08
阅读次数:
65
地址:https://leetcode-cn.com/problems/hamming-distance/ <?php /** 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y < 231. 示例: 输 ...
分类:
其他好文 时间:
2020-07-15 22:55:36
阅读次数:
57
一位C++小白的力扣刷题_成长记录_欢迎 visit ^_^ ( 该篇,以及后面的随笔,都将加入一个“运行结果” 。 不断完善,加油加油~!) 其他_第2题:汉明距离 题目描述: 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 ...
分类:
编程语言 时间:
2020-07-14 01:02:28
阅读次数:
84
以leetcode上的一个题目为例子。 连接 解题思路: 举个例子。word1 = abcd word2=abce.将word1变为word2.假设我们均考虑到第4个字符,d!=e, 直接替换 也就是前三个字符需要的次数+1。 把d删除掉,让第三个字符c和word2的第四个字符匹配,在d的后边添加一 ...
分类:
其他好文 时间:
2020-07-13 15:26:01
阅读次数:
53
题目来源:leetcode451 汉明距离 题目描述: 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y < 231. 示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1 ...
分类:
其他好文 时间:
2020-07-07 09:26:11
阅读次数:
56
考虑用一个二维dp数组表示所需的最小操作次数。 dp[i][j]表示将word1的前i个字符转换为word2的前j个字符所需要的最少操作次数。 由于操作的顺序对于最后操作的结果没有影响,所以我们假设操作总是从word1的前面字符操作到word1的后面字符。 如果word1的第i个字符等于word2的 ...
分类:
其他好文 时间:
2020-07-04 20:50:44
阅读次数:
53
时间复杂度n ^ 2 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 1010; 4 int n, m; 5 char a[N], b[N]; 6 int dp[N][N]; 7 int main() { 8 cin ...
分类:
其他好文 时间:
2020-07-03 21:21:38
阅读次数:
62
在用户输入一个单词的时候,判断这个单词是否拼写错误,如果拼写错误,找到正确的单词并且返回。 思路: 1.准备词库 2.判断一下输入的单词是否在词库中,如果在,输出 3.如果不在,找到与之相对的编辑距离为1的所有单词 4.遍历这些单词,并输出在吃苦中出现次数最多的单词 中文单词拼写检查思路: 1.用所 ...
分类:
其他好文 时间:
2020-06-25 11:30:22
阅读次数:
51
动态规划 思路: 用dp[i][j]表示A的前 i 个字母和B的前 j 个字母之间的编辑距离。 则边缘部分dp[i][0] = i ,dp[0][j] = j ,因为要把A的前i个字母变成B的前0个字母也就是空串需要删除A的i个字母即可。同理要把A的空串变成B的前j个字母,需要在A中添加B的前j个字 ...
分类:
其他好文 时间:
2020-06-11 13:26:39
阅读次数:
57