动态规划之用最少的字符操作将字符串A转换为字符串B
2024-09-05 18:30:45
1.试用动态规划算法实现下列问题:设A和B是两个字符串。我们要用最少的字符操作,将字符串A转换为字符串B,这里所说的字符操作包括:
(1)删除一个字符。
(2)插入一个字符。
(3)将一个字符改为另一个字符。
请写出该算法:
#include <string.h>
#include <iostream>
using namespace std;
/*将字符串A转换为字符串B最少的操作次数*/
int minEditDistance(string A,string B)
{
int A_len=A.length();
int B_len=B.length();
int D[B_len+][A_len+];
D[][]=;
for(int i=;i<=A_len;i++)
{
D[][i]=i;
}
for(int i=;i<=B_len;i++)
{
D[i][]=i;
}
for(int i=;i<=B_len;i++)
{
for(int j=;j<=A_len;j++)
D[i][j]=min(min(D[i-][j]+,D[i][j-]+),(A[j-]==B[i-]?D[i-][j-]:D[i-][j-]+));
}
return D[B_len][A_len];
}
/*主函数*/
int main()
{
string A,B;
cin>>A>>B;
cout<<minEditDistance(A,B);
}
最新文章
- ps你最容易忽略的知识
- Java--Exchanger用于进行线程间的数据交换
- mac下卸载MySQL
- DECO 一个REACT NAtive 开发IDE工具
- 使用Java字节流拷贝文件
- JavaScript基础---AJAX
- 跨平台的加密算法XXTEA 的封装
- CentOS启动和停止服务详解
- 1000万条数据导入mysql
- 【原】现有市场上H264 IPCamerad的功能
- switch语法中break,default作用说明
- mysql 海量数据的存储和访问解决方案
- 布局重用 include merge ViewStub
- android与javascript相互调用
- 网站流量统计系统 phpMyVisites
- 基于TFTP协议的远程升级设计
- 自动化测试的Selenium的python版安装与使用
- C# Linq处理list数据
- 10、DOM(文档对象模型)
- (转)SVN搭建(附下载地址)
热门文章
- 20-1 django上传文件和项目里上传头像如何查看
- Struts2整合Spring方法及原理
- 6 获取请求头和URL信息
- Project Euler Problem 16-Power digit sum
- 2018-11-19-Roslyn-NameSyntax-的-ToString-和-ToFullString-的区别
- 【转载】Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)
- Python--day29--configparser模块(配置)(不熟,以后要找时间重学)
- git clone出现Permission denied (publickey)解决办法
- java TreeSet的排序之定制排序
- 2019-11-20-Github-给仓库上传-NuGet-库