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);
}

动态规划之用最少的字符操作将字符串A转换为字符串B的更多相关文章

  1. (PASS)字符数组\字符串数组 和 字符串 的相互转换

    1,字符数组 转换为 字符串 java可以使用两种方法直接将字符数组转为字符串. 方法1:直接在构造String时转换. char[] data = {'a', 'b', 'c'}; String s ...

  2. dedecms功能性函数封装(XSS过滤、编码、浏览器XSS hack、字符操作函数)

    dedecms虽然有诸多漏洞,但不可否认确实是一个很不错的内容管理系统(cms),其他也不乏很多功能实用性的函数,以下就部分列举,持续更新,不作过多说明.使用时需部分修改,你懂的 1.XSS过滤. f ...

  3. C#——字符操作

    题目要求:用户随机输入字母及数字组成的字符串,当用户连续输入字符串‘hello’时,程序结束用户输入,并分别显示用户输入的字母及数字的数目. 代码: using System; using Syste ...

  4. wstring操作与普通段字符操作对照表

    字符分类:   宽字符函数普通C函数描述   iswalnum()   isalnum()   测试字符是否为数字或字母   iswalpha()   isalpha()   测试字符是否是字母    ...

  5. 算法基础:删除字符串中出现次数最少的字符(Golang实现)

    描写叙述: 实现删除字符串中出现次数最少的字符.若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串. 字符串中其他字符保持原来的顺序. 输入: 字符串仅仅包括小写英文字母, 不考虑非法输入, ...

  6. numpy 字符数组和字符操作(略)

    字符数组 该部分内容见 numpy-ref-1.14.5 中的 1.6.4 字符数组Character arrays (numpy.char) 和 3.1.4 创建字符数组Creating chara ...

  7. C、C++字符操作归总

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...

  8. JavaScript中字符操作之大小写转换

    1.toUpperCase()   方法用于把字符串转换为大写 var str = prompt("请输入需转换大写的字符串:"); str = str.toUpperCase() ...

  9. XML序列化 判断是否是手机 字符操作普通帮助类 验证数据帮助类 IO帮助类 c# Lambda操作类封装 C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法 C# -- 文件的压缩与解压(GZipStream)

    XML序列化   #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="ob ...

随机推荐

  1. IntelliJ IDEA和Eclipse设置JVM运行参数

    打开 IDEA 安装目录,看到有一个 bin 目录,其中有两个 vmoptions 文件,需针对不同的JDK进行配置: 32 位:idea.exe.vmoptions64 位:idea64.exe.v ...

  2. oracle的group by用法

    原文链接:https://www.cnblogs.com/Each-Person-Got-a-Dream/p/8946961.html sql如下: select min(es.sku_price) ...

  3. PHP内置服务器

    PHP在安装的时候会内置了服务器的功能,我们在使用的过程中如果只是调试,可以选择启动PHP内置的服务器,下面是windows下PHP内置服务器的启动步骤: 1.将php的D:\phpStudy\php ...

  4. 用户注册页的布局及js逻辑实现(正则,注册按钮)

    文章地址:https://www.cnblogs.com/sandraryan/ 先写一个简单的静态页面,然后对用户输入的内容进行验证,判断输入的值是否符合规则,符合规则进行注册 先上静态页面 < ...

  5. 全面解读Python Web开发框架Django,利用Django构建web应用及其部署

    全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django ...

  6. mac常用快捷键,Mac文件重命名快捷键,Mac OS快速访问系统根目录, MacOS 10.11重要数据的存储位置大全

    command+r,相当于F5,刷新页面 command+F5,启动voiceover command+q 关闭当前程序 在Finder中command+/ 打开底部状态栏,可以查看剩余磁盘空间大小 ...

  7. CentOS7 network.service loaded failed 处理技巧

    某一日,用systemctl --failed查看到如下错误信息,但实际上网络是OK的,真奇怪: 1 2 3 4 5 6 7 8 [root@localhost.localdomain media]# ...

  8. 关于 FormData 和 URLSearchParams

    一.FormData FormData 接口提供了一种表示表单数据的键值对的构造方式,经过它的数据可以使用 XMLHttpRequest.send() 方法送出,本接口和此方法都相当简单直接.如果送出 ...

  9. Python--day47--mysql分页性能相关方案

    提高分页性能: 分页的时候,如果是正常的数据全局扫描,分页越大的时候花费的时间越长. 这时候要提高效率的话就不能全局扫描,如下面的例子,扫描索引且从最大或最小页开始扫描.

  10. CentOS7在防火墙与端口上的操作

    https://jingyan.baidu.com/article/cdddd41cb3bf6c53cb00e1ac.html CentOS7在安装软件包或类库的时候,常常会因为防火墙的拦截和端口未开 ...