整理的一些模版LCS(连续和非连续)
时间:2022-05-05
本文章向大家介绍整理的一些模版LCS(连续和非连续),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
对于连续的最大串,我们称之为子串....非连续的称之为公共序列..
代码:
非连续连续
1 int LCS(char a[],char b[],char sav[]){
2 int lena=strlen(a);
3 int lenb=strlen(b);
4 int i,j;
5 vector<vector<int> >mat(lena+1);
6 for(int i=0;i<=lena;i++)
7 mat[i].resize(lenb+1,0);
8 for(i=1;i<=lena;i++){
9 for(j=1;j<=lenb;j++){
10 if(a[i-1]==b[j-1])
11 mat[i][j]=mat[i-1][j-1]+1;
12 else
13 mat[i][j]=max(mat[i-1][j],mat[i][j-1]);
14 }
15 }
16 i=lena-1;
17 j=lenb-1;
18 int k=0;
19 while(i!=-1&&j!=-1) {
20 if(a[i]==b[j]){
21 sav[k++]=a[i];
22 i--;
23 j--;
24 }
25 else{
26 if(mat[i+1][j+1]==mat[i][j]){
27 i--;
28 j--;
29 }
30 else{
31 if(mat[i][j+1]>=mat[i+1][j]) i--;
32 else j--;
33 }
34 }
35 }
36 return k;
37 }
连续子串
代码:
1 int LCS(char a[],char b[],char sav[]){
2 int lena=strlen(a);
3 int lenb=strlen(b);
4 int i,j,k=0,x=0;
5 vector<vector<int> >lcs(lena+1);
6 for(int i=0;i<=lena;i++)
7 lcs[i].resize(lenb+1,0);
8 for(i=1;i<=lena;i++){
9 for(j=1;j<=lenb;j++)
10 if(a[i-1]==b[j-1]){
11 lcs[i][j]=lcs[i-1][j-1]+1;
12 if(k<lcs[i][j]){
13 x=i;
14 k=lcs[i][j];
15 }
16 }
17 }
18 strncpy(sav,a+(x-k),k);
19 return k;
20 }
- SpringBoot工作机制
- Android权限管理PermissionsDispatcher2.3.2使用+原生6.0权限使用
- SpringBoot中的IoC
- Sonar安装配置
- 《AngularJS深度剖析与最佳实践》推荐序
- JavaScript递归方法 生成 json tree 树形结构数据
- springboot使用hibernate validator校验
- 机器学习(三) ——k-近邻算法基础
- SpringBoot实战 之 异常处理篇
- ES6的Promise
- vue input输入框联想
- Sonar本地环境搭建
- Spark强大的函数扩展功能
- SpringBoot-Mybatis_Plus学习记录之公共字段自动填充
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- range函数小应用
- 今日算法题,请查收
- 如何将根证书预置到 firefox 浏览器发布包中
- Vue + Flask 实战开发系列(九)
- 推荐几款快速管理 Kubernetes 多集群环境的神器
- 1. 初识Jackson -- 世界上最好的JSON库
- 实时应用程序中checkpoint语义以及获取最新offset
- Python2.6低版本Python如何实现爬虫功能
- python开发web服务 bottle框架
- 这样设置 IDEA,让你爽到飞起!
- GO 切片实力踩坑
- BeautifulSoup解析html介绍
- 微信会被封?!包子 Leetcode 1512 solution Number of Good Pairs
- VUE是什么?
- 爬虫如何抓取网页的动态加载数据-ajax加载