[leetcode72]Edit Distance(dp)
题目链接:https://leetcode.com/problems/edit-distance/
题意:求字符串的最短编辑距离,就是有三个操作,插入一个字符、删除一个字符、修改一个字符,最终让两个字符串相等。
DP,定义两个字符串a和b,dp(i,j)为截至ai-1和bj-1时的最短编辑距离。
当ai-1=bi-1的时候,有dp(i,j)=min(dp(i,j),dp(i-1,j-1)),对应不做任何操作;
不相等的时候会有dp(i,j)=min(dp(i,j),dp(i-1,j-1)+1),对应修改操作;
另外还有两个方向,dp(i,j)=min(dp(i,j),dp(i-1,j)+1),对应删除操作(对a来说),dp(i,j)=min(dp(i,j),dp(i,j-1)+1),对应插入操作(对a来说)。
class Solution {
public:
int minDistance(string word1, string word2) {
int na = word1.length();
int nb = word2.length();
int dp[][];
memset(dp, 0x7f7f7f7f, sizeof(dp));
if(na == ) return nb;
if(nb == ) return na;
for(int i = ; i <= na; i++) dp[i][] = i;
for(int i = ; i <= nb; i++) dp[][i] = i;
for(int i = ; i <= na; i++) {
for(int j = ; j <= nb; j++) {
if(word1[i-] == word2[j-]) dp[i][j] = min(dp[i][j], dp[i-][j-]);
else dp[i][j] = min(dp[i][j], dp[i-][j-]+);
dp[i][j] = min(dp[i][j], dp[i-][j]+);
dp[i][j] = min(dp[i][j], dp[i][j-]+);
}
}
return dp[na][nb];
}
};
[leetcode72]Edit Distance(dp)的更多相关文章
- 71.Edit Distance(编辑距离)
Level: Hard 题目描述: Given two words word1 and word2, find the minimum number of operations required ...
- Leetcode之动态规划(DP)专题-72. 编辑距离(Edit Distance)
Leetcode之动态规划(DP)专题-72. 编辑距离(Edit Distance) 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 . 你可 ...
- LightOJ 1033 Generating Palindromes(dp)
LightOJ 1033 Generating Palindromes(dp) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...
- lightOJ 1047 Neighbor House (DP)
lightOJ 1047 Neighbor House (DP) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87730# ...
- UVA11125 - Arrange Some Marbles(dp)
UVA11125 - Arrange Some Marbles(dp) option=com_onlinejudge&Itemid=8&category=24&page=sho ...
- Leetcode#461. Hamming Distance(汉明距离)
题目描述 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意: 0 ≤ x, y < 231. 示例: 输入: x = ...
- 【POJ 3071】 Football(DP)
[POJ 3071] Football(DP) Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4350 Accepted ...
- 初探动态规划(DP)
学习qzz的命名,来写一篇关于动态规划(dp)的入门博客. 动态规划应该算是一个入门oier的坑,动态规划的抽象即神奇之处,让很多萌新 萌比. 写这篇博客的目标,就是想要用一些容易理解的方式,讲解入门 ...
- Tour(dp)
Tour(dp) 给定平面上n(n<=1000)个点的坐标(按照x递增的顺序),各点x坐标不同,且均为正整数.请设计一条路线,从最左边的点出发,走到最右边的点后再返回,要求除了最左点和最右点之外 ...
随机推荐
- 【采集】php str_replace
<?php function my_str_replace($xmlHttp,$order='asc'){ if($order=='asc'){ return str_replace(array ...
- .NET4.5中WCF中默认生成的basicHttpsBinding的研究
起因: 使用.net4.5建立了一个空白的WCF服务.默认使用的绑定配置是basicHttpsBinding. 问题发现: 1.用客户端进行服务引用,生成了默认的配置文件,其中绑定配置是basicHt ...
- Web UI Design Patterns 2014
http://www.uxpin.com/web-design-patterns.html?utm_source=Interaction%20Design%20Best%20Practices%20V ...
- ORA-06550:line 1,column 7;PLS-00201:indentifer '存储过程' must be declared;...PL/SQL Statement ignored 问题
前段时间由于修改SMES系统,出现了一个问题. ORA-06550:line 1,column 7;PLS-00201:indentifer '存储过程' must be declared;...PL ...
- w3c_html_study_note_5.26
xhtml+css 正确的说法 “DIV+CSS”叫法将网页制作者引入两大误区 [误区一]网页中用了Table,页面就不标准,甚至觉着用Table丢人,Table成为了判定页面是否标准的关键点. [误 ...
- CSS:在input、pre中左边加上一个图标(一行和多行)
前言 接触过EasyUI的朋友都知道其警告框就是左边有个三角警告图标,此文所做的效果正是这样.此外,还将示例多行的做法. 一.在input左边加上一个图标(一行) 注:left center定义了图标 ...
- Java中super的用法并与this的区别(转载)
一.子类中如果需要调用父类中的构造函数,则需要使用super(),且必须在构造函数中的第一行 public class Demo1 { public static void main(String[] ...
- jQuery1.9.1源码分析--Animation模块
var fxNow, // 使用一个ID来执行动画setInterval timerId, rfxtypes = /^(?:toggle|show|hide)$/, // eg: +=30.5px / ...
- HDU4276 The Ghost Blows Light SPFA&&树dp
题目的介绍以及思路完全参考了下面的博客:http://blog.csdn.net/acm_cxlove/article/details/7964739 做这道题主要是为了加强自己对SPFA的代码的训练 ...
- POJ 1674
#include<iostream>//cheng da cai zi 08 .11 .13 using namespace std; int main() { int digit_num ...