写个最长公共子序列(子串)吧~

动态规划:求最长公共子串/最长公共子序列 最长公共子序列和最长公共子串区别        最长公共子串(Longest Common Substring)与最长公共子序列(Longest Common Subsequence)的区别: 子串要求在原字符串中是连续的,而子序列则只需保持相对顺序一致,并不要求连续。例如X = {a, Q, 1, 1}; Y = {a, 1, 1, d, f}那么,{a, 1, 1}是X和Y的最长公共子序 阅读详情
def longest_common_subseq(str1, str2):
    value = [[0 for j in range(len(str2) + 1)] for i in range(len(str1) + 1)]
    for i in range(1, len(str1) + 1):
        for j in range(1, len(str2) + 1):
            if str1[i - 1] == str2[j - 1]:
                value[i][j] = value[i - 1][j - 1] + 1
            else:
                value[i][j] = max(value[i - 1][j], value[i][j - 1])
    return value[-1][-1]

def longest_common_substr(str1, str2):
    value = [[0 for j in range(len(str2) + 1)] for i in range(len(str1) + 1)]
    for i in range(1, len(str1) + 1):
        for j in range(1, len(str2) + 1):
            if str1[i - 1] == str2[j - 1]:
                value[i][j] = value[i - 1][j - 1] + 1
            else:
                value[i][j] = 0
    max_value = max([max(value[i]) for i in range(len(value))])
    return max_value


# 测试通过
str1 = "abcdefg"
str2 = "bcbcbceda"
print(longest_common_subseq(str1, str2))
print(longest_common_substr(str1, str2))

动态规划思想

参考1
参考2

最长公共子序列(LCS)和最长公共子串长度DP算法 leetCode最长公共子序列问题地址:https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray/comments/ 描述 给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。 使用动态规划算法 推荐一篇好理解的文章 使用到的关键点: 初始化DP二维数组 DP二维数组填充的值对应的公式 ... 阅读详情

相关推荐

【LeetCode】最长公共子串&最长公共子序列

子序列与子串的区别: 假设有S1 = “abcdeffg” S2 = "abcfg" 子串:“abc” 子序列:“abcfg” 简单的说,子串就是需要连续,子序列不需要连续。 题目1:子串 可能我这么说不严谨,其实718题是子数组,但意思是一样的,都是需要找连续的。 718. 最长重复子数组 给两个整数数组A和B,返回两个数组中公共的、长度最长的子数组的长度。 示例 1:...

Max的专栏 5263

最长公共子序列、最长公共子串的输出

1、最长公共子序列: 举个例子,s1=“abcfde”,s2=“fdea”。那么s1与s2的最长公共子序列就是"fde"。该问题是典型的动态规划问题,我们设maxlen(i,j)表示s1左边i个字符与s2左边j个字符的最长公共子序列长度,(i,j)从0开始,那么递推关系很容易找到,就是: if(s1[i-1]==s2[j-1]) { maxlen(i,j)=maxlen(i-1,j-1)+1; }else { maxlen(i,j)=max(maxlen(i,j-1),maxlen(i-1,j)

KI的博客 8万+

Android Audio - 支持多应用同时录音_Android8.1修改方法

支持多应用同时录音_Android8.1修改方法 源码路径: sdk\frameworks\av\services\audiopolicy\managerdefault\AudioPolicyManager.cpp 需要修改两个位置: audio_io_handle_t AudioPolicyManager::getInputForDevice() 在mpClientInterface-&gt...

iFinelio Tower 的博客 5758

最长公共子序列和最长公共子串的动态规划实现(java)

最长公共子序列和最长公共子串的动态规划算法实现,java代码以及个人见解。

晓茸有点甜的博客 7063

自监督学习与上下文赌博机融合:视觉决策中的协同优化与实战指南

在机器学习领域,自监督学习(Self-Supervised Learning)通过设计前置任务从无标注数据中学习通用表征,已成为解决标注数据稀缺问题的关键技术。其核心原理是利用数据自身的结构生成监督信号,训练编码器提取鲁棒特征。上下文赌博机(Contextual Bandits)作为强化学习的简化分支,专注于在给定上下文信息下做出单步最优决策,平衡探索与利用,广泛应用于推荐系统、广告投放等场景。将两者结合,构建端到端的协同训练框架,能让视觉表征的优化直接服务于最终的决策目标,同时利用自监督任务作为正则化项提

weixin_33721344的博客 520

String+CytoScape构建PPI网络

1.下载CytoScape Cytoscape是一款专业强大好用的物生信息分析软件,主要达用于专业的研究人员使用,软件主要适用于整合模块化网络和生物科学联系网络图的绘制,支持多种文件格式,导入后就可以直接进行编辑或者分析等操作了,除此之外,软件还提供了强大的编辑工具,支持添加相应的注释信息,软件基于java环境组件打造。 下载地址:https://cytoscape.org/ 因为软件基于java...

xiaobai1_1的博客 1万+

最长公共子序列(LCS) 最长公共子串

1.最长公共子序列 什么是子序列: 例如对于字符串"saabcd",s,a,a是其一个子序列,s,a,b,d也是一个子序列。子序列不要求连续性。 最长公共子序列问题有最优子结构,这个问题可以分解称为更小的问题,因此整个问题就变简单了。同时,子问题的解释可以被重复使用的,也就是说更高级别的子问题会重用更小子问题的解。满足这两点以后,很容易就想到用动态规划来求解。 1.假设两个字符串s1, s2。当其...

bitcarmanlee的博客 1万+

Ubuntu20.04配置PX4环境启动或编译jmavsim 出现的错误及解决办法

错误1:ant命令未找到

Iamsonice的博客 8856

动态规划---求最长公共子序列和最长公共子串(C语言)

参考:https://blog.youkuaiyun.com/someone_and_anyone/article/details/81044153 一、求最长公共子序列 1、问题描述: 从一个给定的串中删去(不一定连续地删去)0个或0个以上的字符,剩下地字符按原来顺序组成的串。例如:“ ”,“a”,“xb”,“aaa”,“bbb”,“xabb”,“xaaabbb”都是串“xaaabbb”的子序列。(例子中的...

优快云 1万+

数学不好是原罪——高等数学笔记(汇总版)

这是本人之前考研的高数手写笔记,工科学硕数一考了146(满分150),笔记有一定参考价值,欢迎大家收藏借鉴。

xuuyann 5万+

VMD分子可视化实战:5个隐藏技巧让你的科研图像秒变顶刊级别

本文深入探讨了VMD分子可视化软件在科研图像美化中的5个高阶技巧,旨在帮助研究者将分子结构图提升至顶刊级别。内容涵盖原子色彩与材质的艺术化定制、沉浸式分子环境构建、专业构图与视角控制、数据驱动的动态可视化以及自动化工作流建立,通过精细的色彩映射、光照调整、周期性边界展示和脚本自动化,显著增强图像的科学叙事性与视觉冲击力。

weixin_29240343的博客 421

最长公共子序列和最长公共子串(C语言实现)

核心思想: 利用动态规划的思想,通过设置一个临时数组t[][],其中t[i][j]表示,以Str1[i]作为末尾和以Str[2]作为末尾的最长公共子序列或者子串的长度。 算法步骤: (1)将输入的两个字符串分别存在数组a[]和b[]中,同时设置两个临时数组t1[][]和t2[][],第一个t1[i][j]表示a[]数组前i-1个字符串和b[]数组前j-1个字符串的最大公共子序列;第二个t2[i][j]表示a[]数组前i-1个字符串和b[]数组前j-1个字符串的最大公共子串; (2)循坏遍历两个字符串的所有字

qq_42453280的博客 9868

使用abagen工具箱获取基于脑区的基因表达矩阵

脑区模板定义了您感兴趣的脑区的空间位置。abagen提供了一些预定义的脑区模板,您可以选择使用,也可以使用自定义的脑区模板。它提供了一种简便的方式来获取基于脑区的基因表达矩阵。abagen需要使用Allen脑图谱数据来获取基因表达矩阵。您可以使用abagen内置的下载功能来获取这些数据。这就是使用abagen工具箱获取基于脑区的基因表达矩阵的详细步骤。通过按照上述步骤操作,您可以轻松获取并使用Allen脑图谱数据中的基因表达信息。一旦您加载了脑区模板,您可以使用abagen来获取基于脑区的基因表达矩阵。

web_bug407的博客 1326

LeetCode 最长公共子序列和子串

求两个字符串的最长公共子串(Longest Common Substring)和最长公共子序列(Longest Common Subsequence)的区别在于 最长公共子串是在原来的字符串中是连续的,而子序列只需要保持相对顺序一致,并不要求连续。 例如:X={a,Q,1,1},Y={a,1,1,d,f};则这两个字符串的最长公共子序列为{a,1,1},但是这两个字符串的最长公共子串为{1,1...

渣渣 2276

基于计算机视觉的无人便利店技术:从算法到部署的系统化实战指南

摘要:本文系统介绍了基于计算机视觉的无人便利店技术方案,提出"商品检测-跟踪-动作识别-防损-结算"五段式流水线架构。详细阐述了YOLOv8-Seg商品检测、OC-Sort多目标跟踪、3D-CNN+ST-GCN动作识别等核心算法实现,并完成NVIDIA Jetson Xavier NX边缘端的优化部署。通过TensorRT量化、DeepStream加速等技术手段,系统在保持94.7%动作识别准确率的同时,将漏单率降至0.8%,单店云端算力成本较行业平均降低84%。所有代码已开源,可直接应

博客 625

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最长公共子序列和最长公共子串

给出1,2,…,n的两个排列P1 和 P2 ,求它们的最长公共子序列。第一行是一个数n。接下来两行,每行为n个数,为自然数1,2,…,n的一个排列。一个数,即最长公共子序列的长度。

qq_53237241的博客 1000

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

动态规划从入门到精通 最长公共子串、最长公共子序列问题

子串和子序列都是原字符串或序列的一部分,它们的区别在于子串是相邻的字符组成的一段连续子序列,而子序列是从原序列中取出若干个元素组成的子序列,不一定是相邻的。 最长公共子串问题公式解说:如果两个字母不相同,值为0;如果两个字母相同,值为左上角的值加1,最长公共子串的问题的最终答案并不是在最后一个单元格中,答案为网格中最大的数字——他可能并不位于最后的单元格中。最长公共子序列公式解说:如果两个字母不同,就选择上方和左方中较大的那个,如果两个字母相同,就等于左上方单元格的值加1

m0_62793538的博客 1412

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

最长公共子序列和最长公共子串——C++

一、给定两个字符串S1和S2,求两个字符串的最长公共子序列的长度。 输入样例 ABCD AEBD 输出样例 3 解释 S1和S2的最长公共子序列为ABD,长度为3 思路 动态规划 LCS(m,n)表示S1[0…m]和S2[0…n]的最长公共子序列的长度 S1[m] == S2[n]: LCS(m, n) = 1 + LCS(m - 1, n - 1); S1[m] != S2[n]: LCS(m, n) = max(LCS(m - 1, n), LCS(m, n - 1))。 #inc

qq_38236355的博客 1345

三种方法了解一下“ 最长公共子序列 ” 并打印最长公共子序列与 “ 最长公共子串 ”

文章目录最长公共子序列1.求最长公共子序列的长度(1)递归(2)备忘录(3)动态规划2.求最大公共子序列,打印出来最长公共子串 最长公共子序列 子序列可以不连续,而子串必须得连续,比如ACEG是ABCDEFG是子序列而不是子串,ABCD是ABCDEF的子串 1.求最长公共子序列的长度 (1)递归 当求最长公共子序列时,可以看做A串的最后一个先与B串的最后一个进行比较,如果相等,则在A,B串减去相同...

唐傘皮 1617

LeetCode-DP算法 | 最长公共子序列和最长公共子串区别

       最长公共子串(Longest Common Substring)与最长公共子序列(Longest Common Subsequence)的区别: 子串要求在原字符串中是连续的,而子序列则只需保持相对顺序一致,并不要求连续。例如X = {a, Q, 1, 1}; Y = {a, 1, 1, d, f}那么,{a, 1, 1}是X和Y的最长公共子序列,但不是它们的最长公共字串。 一、最...

东南风的博客 8855

最长公共子串和最长公共子序列

开始记录学习的点滴啦,转行萌新的第一篇博客 区别:①最长公共子串是两个及以上字符串最长的公共的子串,是连续的;②最长公共子序列两个及以上字符串的公共的子序列组成的字符串。 一、最长公共子串 这里以求三个字符串的最长公共子串为例 #include <iostream> using namespace std; string s1, s2, s3, sub, maxsub; in...

yao_fengchen的博客 642

最长公共子序列与最长公共子串【动态规划】

一、问题导入。 给定一个字符串S,从中删除一些字符后使剩下的串是一个回文串,最少需要删除几个字符才能使剩下的回文串最长。 例如:输入abcda,输出2; 输入google,输出2。 二、最长公共子序列与最长公共子串的区别。 1、最长公共子序列(Longest Common Subsequence,LCS)的定义:在字符串A和字符串B中都出现的序列,且顺序与母串保持一致最长的那个序列。 ...

a515557595_xzb的博客 2609

【leetcode】最长公共子序列(LCS)和最长公共子串

这两个概念我之前一直没搞清。 1. 最长公共子序列(LCS) 1.1 问题描述 1.2 思路 利用动态规划。 下一步就要找到状态之间的转换方程。 因此可以根据这个方程来进行填表,以"helloworld"和“loop”为例: 1.3 代码 def LCS(string1,string2): len1 = len(string1) len2 = len(strin...

littlemichelle 4093

最长公共子序列和最长公共子串区别

最长公共子序列和最长公共子串区别        最长公共子串(Longest Common Substring)与最长公共子序列(Longest Common Subsequence)的区别: 子串要求在原字符串中是连续的,而子序列则只需保持相对顺序一致,并不要求连续。例如X = {a, Q, 1, 1}; Y = {a, 1, 1, d, f}那么,{a, 1, 1}是X和Y的最长公共子序列,但

qq_37171273的博客 1012
上一篇: 写个堆排序吧~
下一篇: 写个汉诺塔吧~
math_computer
博客等级 码龄8年 43粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值