博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编辑距离
阅读量:5035 次
发布时间:2019-06-12

本文共 889 字,大约阅读时间需要 2 分钟。

好吧。我还没习惯Live Writer。这部分被覆盖掉了。贴回来。

编辑距离,编程之美3.3节。这个问题类似于最长公共子序列LCS,所以可以使用DP和滚动数组来简化计算。

int editdist(const string& w1, const string& w2) {    size_t len1 = w1.length(), len2 = w2.length();    if (len1++ < len2++) return editdist(w2, w1);    int* dist = new int[len2];    for (size_t j = 0; j < len2; ++j)        dist[j] = j;    for (size_t i = 1; i < len1; ++i) {        int p = dist[0]++;        for (size_t j = 1; j < len2; ++j) {            int np = dist[j];            if (w1[i-1] == w2[j-1]) {                dist[j] = p;            }            else {                dist[j] = min(dist[j], dist[j-1]) + 1;                dist[j] = min(dist[j], p + 1);            }            p = np;        }    }    int r = dist[len2-1];    delete dist;    return r;}int main() {    string w1, w2;    while (cin>>w1>>w2)        cout<

转载于:https://www.cnblogs.com/acmaru/archive/2011/03/11/1981574.html

你可能感兴趣的文章
9.Hibernate 缓存
查看>>
Spring mvc使用不了jstl 或者 Spring mvc不解析jstl
查看>>
看看 Delphi XE2 为 VCL 提供的 14 种样式
查看>>
Python内置函数(29)——help
查看>>
机器学习系列-tensorflow-01-急切执行API
查看>>
SqlServer 遍历修改字段长度
查看>>
Eclipse快捷键:同时显示两个一模一样的代码窗口
查看>>
《架构之美》阅读笔记05
查看>>
《大道至简》读后感——论沟通的重要性
查看>>
hdu-5478 Can you find it(快速幂)
查看>>
JDBC基础篇(MYSQL)——使用statement执行DQL语句(select)
查看>>
UITextField实现字数限制
查看>>
在Azure上的VM镜像库中找到想要的镜像
查看>>
杭高OI20190125 (genies出题)
查看>>
Java远程连接redis, 报错 Connection refused: connect
查看>>
redis安装篇
查看>>
时间都去哪儿啦
查看>>
Modbus 通信协议详解
查看>>
深入JavaScript类型判定
查看>>
Linux 中shell 学习笔记
查看>>