当前位置: 首页 > news >正文

AcWing 902. 最短编辑距离

视频讲解:

【E07 线性DP 编辑距离】
在这里插入图片描述

在这里插入图片描述
两套代码的字符串存储数组都是从1开始存储的!!!!
硬套公式:

#include<iostream>
#include<algorithm>
const int  N = 1010;
using namespace std;
int n,m;
char a[N],b[N];
int f[N][N];
int main(){cin >> n >> a + 1 >> m >> b + 1;for(int i = 0 ; i <= m ; ++ i) f[0][i] = i;for(int i = 0 ; i <= n ; ++ i) f[i][0] = i;for(int i = 1;i <= n; ++ i){for(int j = 1; j <= m ; ++ j){// f[i][j] = min(f[i - 1][j] , f[i][j - 1] ) + 1;// if(a[i] == b[j]) f[i][j] = min(f[i][j] , f[i - 1][j - 1]);// else f[i][j] = min(f[i - 1][j - 1] + 1,f[i][j]) ;if(a[i]==b[j]) f[i][j] = f[i-1][j-1];else{f[i][j] = min(min(f[i-1][j-1],f[i-1][j]),f[i][j-1])+1;}}}cout << f[n][m];return 0;
}

标准答案

#include<iostream>
#include<algorithm>
const int  N = 1010;
using namespace std;
int n,m;
char a[N],b[N];
int f[N][N];
int main(){cin >> n >> a + 1 >> m >> b + 1;for(int i = 0 ; i <= m ; ++ i) f[0][i] = i;for(int i = 0 ; i <= n ; ++ i) f[i][0] = i;for(int i = 1;i <= n; ++ i){for(int j = 1; j <= m ; ++ j){f[i][j] = min(f[i - 1][j] , f[i][j - 1] ) + 1;if(a[i] == b[j]) f[i][j] = min(f[i][j] , f[i - 1][j - 1]);else f[i][j] = min(f[i - 1][j - 1] + 1,f[i][j]) ;}}cout << f[n][m];return 0;
}

http://www.mrgr.cn/news/17083.html

相关文章:

  • 最大交换
  • GD - EmbeddedBuilder_v1.4.1.23782 - PWM官方工程功能记录
  • vscode写markdown(引入html及css语法)
  • 滑模控制2021年12月8日
  • 【MySQL数据库管理问答题】第14章 使用 MySQL InnoDB 集群实现高可用性
  • Driver.js——实现页面引导
  • 深度学习速通系列:Bert模型vs大型语言模型(LLM)
  • 团队比赛时如何给小组记分?
  • 并发编程之CountDownLatchSemaphore原理与应用
  • 算法数学加油站:一元高斯分布(正态分布)Python精美科研绘图(PDF、CDF、PPF、ECDF曲线;QQ图)
  • Git 使用指南 --- 版本管理
  • 【荒原之梦考研数学】考研没有人支持,怎么办?
  • python pyqt statusBar 完整的操作方法详细说明和代码举例
  • 编译原理概述
  • 八皇后问题代码实现(java,递归)
  • ubuntu通过smba访问华为设备
  • 【面试经验】腾讯面试题:在QQ增加电商购物场景,拼多多、京东、淘宝怎么选
  • 13:DCDC电源模块的布局
  • linux环境下安装配置go环境
  • 嵌入式笔试准备