题目如下:

解题思路:本题和【leetcode】583. Delete Operation for Two Strings 类似,区别在于word1[i] != word2[j]的时候,是删除word1[i]还是word2[j]取决于min(dp[i-1][j]+ord(word1[i-1]),dp[i][j-1]+ord(word2[j-1]))。

代码如下:

class Solution(object):
def minimumDeleteSum(self, s1, s2):
"""
:type s1: str
:type s2: str
:rtype: int
"""
word1 = s1
word2 = s2
if len(word1) == 0 or len(word2) == 0:
return abs(len(word2) - len(word1))
dp = [[0 for x in range(len(word2)+1)] for x in range(len(word1)+1)]
w1_ascii = 0
w2_ascii = 0
for i in xrange(1,len(word1)+1):
w1_ascii += ord(word1[i-1])
dp[i][0] = w1_ascii
for j in xrange(1,len(word2)+1):
w2_ascii += ord(word2[j-1])
dp[0][j] = w2_ascii
for i in xrange(1,len(word1)+1):
for j in xrange(1,len(word2)+1):
if word1[i-1] == word2[j-1]:
dp[i][j] = dp[i-1][j-1]
else:
dp[i][j] = min(dp[i-1][j]+ord(word1[i-1]),dp[i][j-1]+ord(word2[j-1]))
return dp[-1][-1]

最新文章

  1. 微信小程序demo汇总
  2. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q109-Q111)
  3. .NET编译项目时出现《此实现不是 Windows 平台 FIPS 验证的加密算法的一部分》处理方法
  4. 【一套C语言控制台的输出框代码】
  5. 下载python标准库--python
  6. mac OS X操作--快捷键
  7. Domain Driven Design and Development In Practice--转载
  8. 如何在Linux上安装Tomcat
  9. Ubuntu12.10 下搭建基于KVM-QEMU的虚拟机环境(八)
  10. springBoot之配置文件的读取以及过滤器和拦截器的使用
  11. 阿里云部署Node.js项目(CentOS)
  12. es7,es8
  13. Axure-----三级下拉菜单的具体实现过程
  14. VUE中如何优雅的动态绑定长按事件
  15. Android 开发 VectorDrawable 矢量图 (一)了解Android矢量图与获取矢量图
  16. 第一个Spring Boot程序
  17. mac 下 IntelliJ IDEA 快捷键
  18. yii2 modules模块配置指南
  19. TCP/IP学习20180625-DNS
  20. 服务容错保护断路器Hystrix之八:Hystrix资源隔离策略

热门文章

  1. linux 杀掉僵尸进程 (zombie process, defunct)
  2. 源码搭建mysql5.7.20
  3. ORACLE动态监听
  4. 002-js-cookie
  5. Struts2 Convention Plugin ( struts2 零配置 )
  6. hbase的TTL机制清除opentsdb的超时数据
  7. 学习《Oracle PL/SQL 实例讲解 原书第5版》---创建student schema
  8. linux安装JSONCPP
  9. mysql修改库、表、字段 字符集,中文排序
  10. Codeforces 515C 题解(贪心+数论)(思维题)