传送门

f[i][j] 表示第一串前 i 个到第二串前 j 个的最小编辑距离

f[i][j] = f[i - 1][j - 1] (s1[i] == s2[j])

f[i][j] = min(f[i - 1][j], f[i][j - 1], f[i - 1][j - 1]) (s1[i] != s2[j])

边界 f[0][j] = j (1 <= j <= m)

   f[i][0] = i (1 <= i <= n)

——代码

 #include <cstdio>
#include <cstring> int n, m;
int f[][];
char s1[], s2[]; inline int min(int x, int y)
{
return x < y ? x : y;
} int main()
{
int i, j;
scanf("%s %s", s1 + , s2 + );
n = strlen(s1 + );
m = strlen(s2 + );
for(i = ; i <= n; i++) f[i][] = i;
for(i = ; i <= m; i++) f[][i] = i;
for(i = ; i <= n; i++)
for(j = ; j <= m; j++)
{
if(s1[i] == s2[j]) f[i][j] = f[i - ][j - ];
else f[i][j] = min(min(f[i - ][j], f[i][j - ]), f[i - ][j - ]) + ;
}
printf("%d\n", f[n][m]);
return ;
}

最新文章

  1. 使用BCP导出导入数据
  2. Oracle12C相关
  3. Oracle中“行转列”的实现方式
  4. magento前台访问错误
  5. Linux学习之less命令
  6. codeforces 665A Buses Between Cities
  7. CGI + FastCGI(PHP-FPM)联系和区别的图解 + 注释
  8. Jmeter 创建FTP测试计划
  9. 有限状态机FSM
  10. Net开发的部分知名网站案例
  11. PAT 1057 数零壹
  12. GO语言的进阶之路-goroutine(并发)
  13. 洛谷P1040 加分二叉树【记忆化搜索】
  14. JAVA-错误The type BookServiceImpl must implement the inherited abstract method
  15. SpringCloud请求响应数据转换(一)
  16. Nodejs学习笔记(二)—事件模块
  17. redis 超时失效key 的监听触发
  18. 给singer的左侧添加fixedTitle,并显示向上滚动偏移效果;
  19. c++ list reverse_iterator
  20. c++各种排序的简单实现

热门文章

  1. 使用particles.js实现网页背景粒子特效
  2. js 事件循环机制 EventLoop
  3. Linux系统编程---文件I/O(open、read、write、lseek、close)
  4. 395 Longest Substring with At Least K Repeating Characters 至少有K个重复字符的最长子串
  5. 274 H-Index H指数
  6. A8ERP配送管理系统
  7. Props、State、Refs 与表单处理
  8. HDU_2079_(01背包)(dfs)
  9. HDU_1874_畅通工程续_最短路问题
  10. vim之vimrc配置文件