当前位置: 首页 > news >正文

1143. 最长公共子序列

在这里插入图片描述
思路

dp:代表两个字符串0-i、0-j所包含的最长公共子序列

dp[i][0]、dp[0][j] 代表其中任一字符串为空时的公共子序列,自然是0 为了方便,初始化dp为0

遍历两个字符串:

当text1[i]==text2[j]时,当前字符相同,此时的最长公共子序列长度=text1[0:i]、text2[0:j](0~ i-1、0~j-1 )之间最长公共子序列+1

text1[0:i]、text2[0:j]是代表 0~ i-1、0~j-1 (字符串的截取s[i:j]取不到j位置的字符,而是j-1)

当text1[i]!=text2[j]时,当前0~ i、0~j最长公共子序列为下方最长公共序列

1.0~ i-1、0~j最长公共子序列

2.0~ i、0~j-1 最长公共子序列

3.0~ i-1、0~j-1 最长公共序列

class Solution(object):def longestCommonSubsequence(self, text1, text2):""":type text1: str:type text2: str:rtype: int"""if text1==text2:return len(text1)dp=[[0]*(len(text2)+1) for i in range(len(text1)+1)]##行、列要跟dp定义对上for i in range(len(text1)):for j in range(len(text2)):if text1[i]==text2[j]:#当前字符相等,则找0~i-1、0~j-1最长公共序列+1  (1为当前字符)dp[i+1][j+1]=dp[i][j]+1else:'''当前字符不相等,当前0~i、0~j最长公共子序列为下方最长公共序列:1.0~i-1、0~j最长公共子序列2.0~i、0~j-1 最长公共子序列3.0~i-1、0~j-1 最长公共序列'''dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j],dp[i][j])return dp[-1][-1]

http://www.mrgr.cn/news/46808.html

相关文章:

  • 无需昂贵GPU:本地部署开源AI项目LocalAI在消费级硬件上运行大模型
  • IntelliJ IDEA 优化设置
  • OFDM接收机学习-第二章 符号同步模块FPGA的实现
  • 实战开发:基于用户反馈筛选与分析系统的实现
  • Go语言的面向对象接口说明及代码示例
  • 浅谈云计算02 | 云计算模式的演进
  • 【Linux】—Xshell、Xftp安装
  • 新赚米渠道,天工AI之天工宝典!
  • 力扣21~25题
  • 【数据结构与算法】简单聊聊图数据的存储
  • CeWL | CeWL 使用实例
  • 【Kubernets】通讲CNI(Container Network Interface)容器网络接口实现方案
  • PGMP-04 Program Benefits Management 项目集效益管理
  • snmpwalk使用说明
  • 基于springboot vue3 工商局商家管理系统设计与实现
  • Python对PDF文件页面的旋转和切割
  • 高清解压视频素材下载指南
  • 如何在 Ubuntu VPS 上从 Apache Web 服务器迁移到 Nginx
  • SAP_FI模块-公司间资产转移ABT1N操作
  • 【hot100-java】二叉树的最近公共祖先
  • 酸枣病虫害智能化防控系统的探索与实践,基于YOLOv9全系列【yolov9/t/s/m/c/e】参数模型开发构建枣类作物种植场景下酸枣病虫害智能检测识别系统
  • Python对PDF文件的合并操作
  • 浏览器动态移动的小球源码分享
  • Ts 工具类型汇总
  • 电层相关 -- 支路板与线路板
  • 系统架构设计师⑧:软件工程-需求工程