712. 两个字符串的最小ASCII删除和 -- 动规

2023-10-26

712. 两个字符串的最小ASCII删除和


class MinimumDeleteSum:
    """
    712. 两个字符串的最小ASCII删除和
    https://leetcode.cn/problems/minimum-ascii-delete-sum-for-two-strings/
    """
    def solution(self, s1: str, s2: str) -> int:
        """
                递归解法 + 备忘录
                自顶向下
                :param text1:
                :param text2:
                :return:
                """
        m, n = len(s1), len(s2)
        self.memo = [[-1 for _ in range(n)] for _ in range(m)]

        return self.dp(s1, 0, s2, 0)

    def dp(self, text1, i, text2, j):
        """
        将 s1[i..] 和 s2[j..] 删除成相同字符串
        :param text1:
        :param i:
        :param text2:
        :param j:
        :return:
        """
        res = 0
        # base case
        if i == len(text1):
            while j < len(text2):
                res += ord(text2[j])
                j += 1
            return res
        if j == len(text2):
            while i < len(text1):
                res += ord(text1[i])
                i += 1
            return res

        # 备忘录
        if self.memo[i][j] != -1:
            return self.memo[i][j]

        if text1[i] == text2[j]:
            self.memo[i][j] = self.dp(text1, i + 1, text2, j + 1)
        else:
            self.memo[i][j] = min(self.dp(text1, i + 1, text2, j) + ord(text1[i]),
                                  self.dp(text1, i, text2, j + 1) + ord(text2[j]))

        return self.memo[i][j]


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

712. 两个字符串的最小ASCII删除和 -- 动规 的相关文章

  • Django 快速搭建博客 第十一节(文章阅读量统计,自动生成文章摘要)

    这一节主要做一些修补工作 一个是 文章阅读量的统计 另一个是自动生成文章摘要内容 1 文章阅读量的统计 1 文章阅读量的统计 我们需要在model下的Post类中新加入一个views 字段用来统计文章被阅读的数量 blog models p
  • 是否二叉搜索树

    习题4 3 是否二叉搜索树 25分 本题要求实现函数 判断给定二叉树是否二叉搜索树 函数接口定义 bool IsBST BinTree T 其中BinTree结构定义如下 typedef struct TNode Position type
  • Go语言函数

    http www jb51 net article 56831 htm Go语言中的函数有系统函数和自定义函数 1 系统函数 系统函数就是Go语言自带的函数 系统函数一般根据功能封装在不同的包内 比如Print Printf Println

随机推荐

  • 微信聊天记录导出工具WeChatExporter开源啦!

    2019年08月21日更新 距离第一次发布软件已经有了许多新功能和稳定性上的提升 本文的一些内容已经过时 欢迎直接到GitHub上看ReadMe https github com tsycnh WeChatExporter 之前曾经写过一个
  • 消息队列 - RabbitMQ - 拓展

    1 Message 状态 Message 在投递时 如果当前 Queue 没有 Message 且有 Consumer 已经订阅了这个 Queue 那么该 Message 会直接发送给 Consumer 不会经过 Queue 存储 Mess
  • 在 Substance Painter中自定义Shader

    为什么要学习在Substance Painter中自定义Shader 答 需要实现引擎与Substance Painter中的渲染效果一致 材质的配置也一致 所见即所得 基础概述 首先在着色器设置这里 我们可以查看当前渲染使用的着色器 如果
  • ETL笔记——第五章 数据清洗与校验(数据检验)

    一 数据一致性处理 通过Kettle工具 使用弱一致性对数据表Personnel Information中的数据进行一致性处理 即利用数据表Personnel Information中的字段GENDER中的值训练出一个健康值预测模型 用于将
  • Android学习之Activity源码的理解(一)

    一 Activity为Android系统中四大组件之一 是Android程序的呈现层 并通过界面与用户进行交互 因此理解Activity源码是有必要的 二 之前我写过一篇文章 http blog csdn net u012561176 ar
  • scrapy的工作流程

    scrapy的工作流程如下图所示 整个工作流程 爬虫中起始的url构造成request对象 并传递给调度器 引擎从调度器中获取到request对象 然后交给下载器 由下载器来获取到页面源代码 并封装成response对象 并回馈给引擎 引擎
  • 测试开发-面试题目整理

    1 java的三大特性 封装 继承 多态 2 python的三大特性 封装 继承 多态 3 多态是怎么实现的 4 重载和重写的区别是什么 5 java的八大数据类型 6 花旗金融算法 java的冒泡法怎么实现的 几层for循环 7 得物面试
  • java网络编程——NIO架构

    目录 1 什么是NIO 2 NIO结构 3 基于NIO下的聊天系统实现 4 Netty 1 什么是NIO NIO java non blocking IO 同步非阻塞IO BIO是阻塞IO 即每一个事件都需要分配一个进程给他 如果客户端没有
  • Debian9 设置静态IP

    1 查看虚拟机上本机ip cmd ipconfig 2 配置网卡 2 1 备份原有配置文件配置文件 cp etc network interfaces etc network interfacesbak 备份原有配置文件 2 2 编辑int
  • elm分类器功能_一文带你读懂线性分类器

    本文为 AI 研习社编译的技术博客 原标题 Linear Classifier 作者 Thomas Pernet 翻译 邓普斯 杰弗 涂世文 Disillusion 校对 邓普斯 杰弗 审核 酱番梨 整理 菠萝妹 原文链接 https me
  • 前端h5 播放器vue-video-player

    1 安装依赖 npm install vue video player 2 在main js全局引入 import VideoPlayer from vue video player import video js dist video j
  • 计蒜客 - 44280 UnDetected(并查集).md

    题目大意 题目链接 给你n个圆 ans 为 最少 前多少个 圆 能把x轴 0 200 完全覆盖 完全覆盖是相交的圆 的最左端 lt 0 最右端 gt 200 输出ans 1 分析 并查集维护边界和输入的圆是否相交 代码 1 2 3 4 5
  • 【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库

    Doris 基于 MPP 架构的高性能实时分析型数据库 1 Doris 介绍 Apache Doris 是一个基于 MPP Massively Parallel Processing 大规模并行处理 架构的高性能 实时的分析型数据库 以极速
  • java上传实现 spring boot +element ui

    先从element ui el upload组件开始介绍
  • linux虚拟机ifconfig command not found

    在linux虚拟机中输入ifconfig命令 出现ifconfig command not found 以下是排查过程 1 cd sbin然后ls 没找到ifconfig命令 2 想通过yum install net tools安装 发现出
  • linux基础——linux线程间通信及同步机制总结

    线程间的通信有两种情况 1 一个进程中的线程与另外一个进程中的线程通信 由于两个线程只能访问自己所属进程的地址空间和资源 故等同于进程间的通信 2 同一个进程中的两个线程进行通信 本文说的就是第二种情况 关于进程间通信 IPC 可以看我的另
  • 测试理论----软件测试四大测试过程

    原文链接 1 测试分析 1 要点 1 软件需求分析 2 测试需求项的提取 3 用户使用场景分析 4 测试工具的调研和选取 5 测试缺陷分析 2 分工 1 测试人员 提取测试点 输出需求跟踪矩阵 2 测试负责人 输出测试计划 2 测试设计 1
  • i.mx287学习笔记6-声卡驱动

    上面是我的微信和QQ群 欢迎新朋友的加入 1 查看声卡设备 aplay l 可以看到存在一个声卡设备 2 制作一个音频文件 我是先下载一个音频 然后使用audition裁剪一下 转化为wav再进行播放的 转换出来之后 3 测试
  • 输入若干个整数,以-1标记输入结束,输出其中的最大数

    题目描述 输入若干个整数 以 1标记输入结束 输出其中的最大数 输入 若干个整数 以 1标记输入结束 输出 其中的最大数 样例输入 1 2 5 7 8 6 1 6 1 样例输出 8 1 使用数组 这种方法可以进行求解 但是如果输入的是 1的
  • 712. 两个字符串的最小ASCII删除和 -- 动规

    712 两个字符串的最小ASCII删除和 class MinimumDeleteSum 712 两个字符串的最小ASCII删除和 https leetcode cn problems minimum ascii delete sum for