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

算法之搜索--最长公共子序列LCS

最长公共子序列(longest common sequence):可以不连续
在这里插入图片描述

最长公共子串(longest common substring):连续
在这里插入图片描述

demo

for (int i = 1;i<=lena;i++){for (int j = 1;j<=lenb;j++){if(a[i-1]==b[j-1]){dp[i][j]=dp[i-1][j-1]+1;}else{dp[i][j]=max(dp[i-1][j],dp[i][j-1]);}}
}

Coincidence

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb
Find a longest common subsequence of two strings.

输入描述:

First and second line of each input case contain two strings of lowercase character a…z. There are no spaces before, inside or after the strings. Lengths of strings do not exceed 100.

输出描述:

For each case, output k – the length of a longest common subsequence in one line.

代码
#include <bits/stdc++.h>
using namespace std;int dp[105][105];void LCS(string a,string b){int lena = a.length();int lenb = b.length();for(int i = 1;i<=lena;i++){for(int j = 1;j<=lenb;j++){if(a[i-1]==b[j-1]){//注意不是i,jdp[i][j]=dp[i-1][j-1]+1;}else{dp[i][j]=max(dp[i-1][j],dp[i][j-1]);}}}
}int main(){string a,b;while(cin>>a>>b){int lena = a.length();int lenb = b.length();LCS(a,b);cout<<dp[lena][lenb]<<endl;}return 0;
}

最长公共子序列

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb
给出两个字符串序列,求最长公共子序列(LCS) 。(改编版,原题规定两字符串长度相等,且无重复元素。)

输入描述:

多组数据输入。
在一行分别输入两个字符串。(字符串长度<=1000)

输出描述:

输出两个字符串的最长公共子序列的长度。

代码
#include <bits/stdc++.h>
using namespace std;int dp[1005][1005];void LCS(string a,string b){int lena = a.length();int lenb = b.length();for(int i = 1;i<=lena;i++){for(int j = 1;j<=lenb;j++){if(a[i-1]==b[j-1]){//注意不是i,jdp[i][j]=dp[i-1][j-1]+1;}else{dp[i][j]=max(dp[i-1][j],dp[i][j-1]);}}}
}int main(){string a,b;while(cin>>a>>b){int lena = a.length();int lenb = b.length();LCS(a,b);cout<<dp[lena][lenb]<<endl;}return 0;
}

最长连续公共子序列

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 传输层协议 —— UDP协议
  • 闲置物品交易系统小程序的设计
  • Go 交叉编译
  • <<编码>> 第 14 章 反馈与触发器(2)--或非门反馈 示例电路
  • Python MongoDB
  • 【C语言零基础入门篇 - 14】:顺序表
  • Android 15 正式发布至 AOSP
  • App及web反编译方案
  • vue3中如何拿到vue2中的this
  • 麒麟操作系统 xxl-job集群搭建
  • 毕业写作很难?分享5款论文AI写作软件永久免费版!
  • 【洛谷】P11062 【MX-X4-T2】「Jason-1」加法 的题解
  • Java设计模式—面向对象设计原则(三) -----> 依赖倒转原则DIP(完整详解,附有代码+案例)
  • [语言月赛 202408] 因友情而终结
  • 一步到位:通过 Docker Compose 部署 EFK 进行 Docker 日志采集
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【译】理解JavaScript:new 关键字
  • 〔开发系列〕一次关于小程序开发的深度总结
  • CEF与代理
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java 网络编程(2):UDP 的使用
  • js递归,无限分级树形折叠菜单
  • node-glob通配符
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • redis学习笔记(三):列表、集合、有序集合
  • SQLServer之创建数据库快照
  • 彻底搞懂浏览器Event-loop
  • 大型网站性能监测、分析与优化常见问题QA
  • 前端
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 前端性能优化——回流与重绘
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 三分钟教你同步 Visual Studio Code 设置
  • 数据科学 第 3 章 11 字符串处理
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 提醒我喝水chrome插件开发指南
  • 推荐一个React的管理后台框架
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 新手搭建网站的主要流程
  • 在weex里面使用chart图表
  • 怎么将电脑中的声音录制成WAV格式
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • %@ page import=%的用法
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (二)丶RabbitMQ的六大核心
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (六)软件测试分工