整理的一些模版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 }
- 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 数组属性和方法
- Saltstack_使用指南14_无master 3.1. 常规信息3.2. grains设置3.3. pillar设置
- 在CDH7.1.1中安装NiFi
- 重学前端(三)-聊聊我们的浏览器的那些事
- Saltstack_使用指南15_多master 3.1. 创建冗余的master3.2. 拷贝主master的key和配置到冗余的master3.3. 启动冗余ma
- Saltstack_使用指南16_syndic 3.1. 部署salt-master3.2. 其他配置与部署4.1. 部署salt-syndic4.2. syndic
- Centos7安装单机版MongoDB
- Saltstack_使用指南17_salt-ssh
- Saltstack_使用指南18_API
- Centos7安装单机版Redis
- Vue3 Composition-Api + TypeScript + 新型状态管理模式探索。
- Saltstack_实战指南01_系统规划
- Saltstack_实战指南02_各主机Pillar信息指定
- TypeScript基础看腻了?进阶实现智能类型推导的简化版Vuex,手把手带你实现。
- Linux下使用 github+hexo 搭建个人博客01-hexo搭建
- Linux下使用 github+hexo 搭建个人博客02-hexo部署到Github Pages