内容简介:动态规划题系列最后一题
2 0 1 9 -5 -26 星 期天 开 始 吧
这周四周五有事情没有更新
动态规划题系列最后一题
题目描述
给定两个字符串暂且称之为a,b,让我们求把字符串a变成字符串b至少需要几步操作,操作的动作分别是delete,insert,replace,并且每个操作只能操作一个字符串。
题目解析
还是那两个步骤,状态的定义以及递推公式。分两种情况,如果他们相等,当前的替换数就等于之前的替换数,否则直接比较前增,删,改的替换数最小值作为当前最小替换数。
/**
* @param String $word1
* @param String $word2
* @return Integer
*/
function minDistance($word1, $word2) {
for($i=0;$i<=strlen($word1);$i++) $dp[$i][0]=$i;
for($i=0;$i<=strlen($word2);$i++) $dp[0][$i]=$i;
for($i=1;$i<=strlen($word1);$i++){
for($j=1;$j<=strlen($word2);$j++){
if(substr($word1,$i-1,1)==substr($word2,$j-1,1)){
$dp[$i][$j]=$dp[$i-1][$j-1];
}else{
$dp[$i][$j]=min($dp[$i-1][$j],$dp[$i][$j-1],$dp[$i-1][$j-1])+1;
}
}
}
return $dp[strlen($word1)][strlen($word2)];
}
Github整理地址: https://github.com/wuqinqiang/leetcode-php
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
公众号运营实战手册
中信出版社 / 2018-11 / 58
作者粥左罗在刚入行做新媒体的一年时间里,就写了100篇阅读量10万+的公众号文章,但是在此之前,他足足花了两个月的时间研究公众号运营和爆款文章的逻辑和打法。 这本书就是他总结和归纳自己公众号写作和运营的全部秘诀和技巧,是一本行之有效的实战指南。 从如何注册一个公号,给公号起什么名字? 多长时间更新一次为好? 到如何找选题,如何积累爆款素材? 如何编辑内容,如何做版面设......一起来看看 《公众号运营实战手册》 这本书的介绍吧!