LeetCode 1143. 最长公共子序列(动态规划)

1. 题目

给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。

一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。

例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。

若这两个字符串没有公共子序列,则返回 0。

示例 1:
输入:text1 = "abcde", text2 = "ace" 
输出:3  
解释:最长公共子序列是 "ace",它的长度为 3。示例 2:
输入:text1 = "abc", text2 = "abc"
输出:3
解释:最长公共子序列是 "abc",它的长度为 3。示例 3:
输入:text1 = "abc", text2 = "def"
输出:0
解释:两个字符串没有公共子序列,返回 0。提示:
1 <= text1.length <= 1000
1 <= text2.length <= 1000
输入的字符串只含有小写英文字符。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-subsequence
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

动态规划应用–搜索引擎拼写纠错

类似题目:
LeetCode 72. 编辑距离(DP)
LeetCode 583. 两个字符串的删除操作(动态规划)
LeetCode 712. 两个字符串的最小ASCII删除和(DP,类似编辑距离)
程序员面试金典 - 面试题 01.05. 一次编辑(编辑距离,DP)

class Solution {
public:int longestCommonSubsequence(string text1, string text2) {int m = text1.size(), n = text2.size(), i, j;vector<vector<int>> dp(m+1,vector<int>(n+1,0));for(i = 1; i <= m; ++i){for(j = 1; j <= n; ++j){if(text1[i-1] == text2[j-1])dp[i][j] = max(dp[i][j], dp[i-1][j-1]+1);elsedp[i][j] = max(dp[i][j], max(dp[i-1][j], max(dp[i][j-1],dp[i-1][j-1])));}}return dp[m][n];}
};

44 ms 12.5 MB

class Solution:def longestCommonSubsequence(self, a: str, b: str) -> int:n1, n2 = len(a), len(b)dp = [[0 for _ in range(n2+1)] for _ in range(n1+1)]for i in range(1,n1+1):for j in range(1,n2+1):if a[i-1] == b[j-1]:dp[i][j] = max(dp[i][j], dp[i-1][j-1]+1)else:dp[i][j] = max(dp[i][j], max(dp[i - 1][j], max(dp[i][j - 1], dp[i - 1][j - 1])))return dp[n1][n2]

772 ms 23.2 MB Python3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【DKN】(四)train.py

内容 try: #不用多言&#xff0c; 获得该模块下的model_name函数Model getattr(importlib.import_module(f"model.{model_name}"), model_name)config getattr(importlib.import_module(config), f"{model_name}Config") except AttributeError:print(…

用promise封装ajax_ES6-promise封装AJAX请求

【摘要】ES6-promise封装AJAX请求考必过小编为大家整理了关于ES6-promise封装AJAX请求的信息&#xff0c;希望可以帮助到大家&#xff01;ES6-promise封装AJAX请求标签&#xff1a;const状态码setreject对象响应状态ISErequest// 接口地址:https://api.apiopen.top/getJoke// 1…

REST和SOAP Web Service的比较(写得非常清晰易懂,转载于此)

本文转载自他人的博客&#xff0c;ArcGIS Server 推出了 对 SOAP 和 REST两种接口&#xff08;用接口类型也许并不准确&#xff09;类型的支持,本文非常清晰的比较了SOAP和Rest的区别联系&#xff01;REST似乎在一夜间兴起了&#xff0c;这可能引起一些争议&#xff0c;反对者可…

LeetCode 1249. 移除无效的括号(栈+set / deque)

1. 题目 给你一个由 (、) 和小写字母组成的字符串 s。 你需要从字符串中删除最少数目的 ‘(’ 或者 ‘)’ &#xff08;可以删除任意位置的括号)&#xff0c;使得剩下的「括号字符串」有效。 请返回任意一个合法字符串。 有效「括号字符串」应当符合以下 任意一条 要求&…

【DKN】(七)dataset.py【未完】

内容 里面有的函数在这里https://blog.csdn.net/qq_35222729/article/details/119882362 try:config getattr(importlib.import_module(config), f"{model_name}Config") except AttributeError:print(f"{model_name} not included!")exit()class BaseDa…

php raabitmq中间件_rabbitMQ消息中间件环境配置及原理了解

视频教程一、Docker 入门Docker是什么&#xff1f;Docker 是一个开源的应用容器引擎&#xff0c;你可以将其理解为一个轻量级的虚拟机&#xff0c;开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任 何流行的 Linux 机器上。为什么要使用 Docke…

CSS 中的定位:relative,absolute

今天碰到一个定位问题&#xff0c;问题解决不好&#xff0c;于是花了大量的时间&#xff0c;调试了好久&#xff0c;得出了一些结果&#xff1a;1、如果有两个不交叉的盒子位于一个大盒子里面&#xff0c;位于上边的盒子的定位为relative&#xff0c;而下边的那个盒子的定位则是…

【DKN】(六)KCNN.py

内容 import torch import torch.nn as nn import torch.nn.functional as F from src.model.general.attention.additive import AdditiveAttentiondevice torch.device("cuda:0" if torch.cuda.is_available() else "cpu")class KCNN(torch.nn.Module):…

北京精雕现状_6秒精密加工,日本走下神坛,北京精雕也做了一个!

各位社友还记得吗&#xff0c;机械社区之前分享过——日本6秒的精密加工火遍制造业圈子~▲点击上图 查看日本怎么用6s让世界惊奇在一阵惊呼赞叹中&#xff0c;一部分人也表示不服&#xff01;比如&#xff0c;国内一位牛人也展示了他的产品。一起看看视频介绍吧——而近日&…

LeetCode 859. 亲密字符串

1. 题目 给定两个由小写字母构成的字符串 A 和 B &#xff0c;只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果&#xff0c;就返回 true &#xff1b;否则返回 false 。 示例 1&#xff1a; 输入&#xff1a; A "ab", B "ba" 输出&#xff1a…

ASP.Net快速开发新闻系统 在线播放

http://www.so138.com/sov/d19a5913-88cf-4abf-a487-69293bb0c403.html转载于:https://www.cnblogs.com/freedom831215/archive/2009/10/03/1577631.html

【DKN】(五)attention.py

感觉还是挺简单&#xff0c;这里只是方便之后回来瞅瞅 import torch import torch.nn as nn import torch.nn.functional as Fclass Attention(torch.nn.Module):"""Attention Net.Input embedding vectors (produced by KCNN) of a candidate news and all of…

小米扫地机器人充电座指示灯不亮_小米扫地机器人常见问题处理 充电后无法取电怎么办?...

与其他科技领域一样&#xff0c;人工智能领域也得到蓬勃发展。如今人工智能已经无处不在。专家把人工智能比作电力&#xff0c;因为它是一种可能改变各行各业的资源。诚然&#xff0c;每个领域都有一些特别重要的技术&#xff0c;例如随着生活的水平的提高&#xff0c;扫地机器…

Enterprise Library 4.1 快速上手(图)

简介&#xff1a; 关于Enterprise Library 的概念&#xff0c;网上可以很容易的找到&#xff0c;在这里要做的是如何快速的打通Enterprise Library 4.1的使用&#xff0c; 让咱们可以用最短的时间使用起来&#xff0c;并且在需要的时候在此基础上再花时间延伸&#xff0c;这是学…

知识图谱源码详解【八】__init__.py

import torch from src.model.DKN.KCNN import KCNN from src.model.DKN.attention import Attention from src.model.general.click_predictor.DNN import DNNClickPredictor# 就是把整个模型框架梳理到一块了&#xff01; class DKN(torch.nn.Module):"""Deep…

python complex函数def_【Python3】Python函数

1. 函数对象函数是第一类对象&#xff0c;即函数可以当做数据传递可以被引用可以当做参数传递返回值可以是函数可以当做容器类型的元素def foo():print(from foo)def index():print(from index)dic {foo:foo,index:index,}while True:choice input(">>>>>…

追MM与设计模式的有趣见解

Posted on 2007-01-18 12:53 东人EP 阅读(383) 评论(0) 编辑 收藏 引用 所属分类: Design Pattern 追MM与设计模式的有趣见解 创建型模式 1、FACTORY —追MM少不了请吃饭了&#xff0c;麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西&#xff0c;虽然口味有所不同&#xff0c;…

LeetCode 872. 叶子相似的树

1. 题目 请考虑一颗二叉树上所有的叶子&#xff0c;这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子&#xff0c;如上图所示&#xff0c;给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。 如果有两颗二叉树的叶值序列是相同&#xff0c;那么我们就认为它们是 叶…

【十】推荐系统遇到知识图谱RippleNet

RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems 代码&#xff1a; https://github.com/hwwang55/RippleNet 心得 &#xff08;1&#xff09;你需要知道Kg是如何起到作用的&#xff01; KG的形式是什么&#xff01; &#xff08;2&…

桩筏有限元中的弹性板计算_采用PKPM系列JCCAD软件桩筏筏板有限元方法计算的模型参数 -...

*****采用PKPM系列JCCAD软件桩筏筏板有限元方法计算的模型参数******计算模型:弹性地基梁板模型 (桩和土按WINKLER模型)地基基础形式及参照规范:天然地基(地基规范)、常规桩基(桩基规范)上部结构影响(共同作用计算): 网格划分依据:所有底层网格线有限元网格控制边长(m): 2.0 采…